implement ConfigureOp#check_lib
This commit is contained in:
1 parent
88fd4bd405
commit
3b586cb476
7 files changed
+78
-7
No files matched your search
@@ -115,6 +115,11 @@ module Rscons
|
||||
co.check_d_import(*cdi)
|
||||
end
|
||||
end
|
||||
if cls = @script.check_libs
|
||||
cls.each do |cl|
|
||||
co.check_lib(*cl)
|
||||
end
|
||||
end
|
||||
if ces = @script.check_executables
|
||||
ces.each do |ce|
|
||||
co.check_executable(*ce)
|
||||
|
||||
@@ -161,6 +161,27 @@ module Rscons
|
||||
common_config_checks(status, options)
|
||||
end
|
||||
|
||||
# Check for a library.
|
||||
def check_lib(lib, options = {})
|
||||
$stdout.write("Checking for library '#{lib}'... ")
|
||||
File.open("#{@work_dir}/cfgtest.c", "wb") do |fh|
|
||||
fh.puts <<-EOF
|
||||
int main(int argc, char * argv[]) {
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
end
|
||||
vars = {
|
||||
"LD" => "${CC}",
|
||||
"LIBS" => [lib],
|
||||
"_SOURCES" => "#{@work_dir}/cfgtest.c",
|
||||
"_TARGET" => "#{@work_dir}/cfgtest.exe",
|
||||
}
|
||||
command = @env.build_command("${LDCMD}", vars)
|
||||
_, _, status = log_and_test_command(command)
|
||||
common_config_checks(status, options)
|
||||
end
|
||||
|
||||
# Check for an executable.
|
||||
def check_executable(executable, options = {})
|
||||
$stdout.write("Checking for executable '#{executable}'... ")
|
||||
|
||||
+17
-7
@@ -60,6 +60,12 @@ module Rscons
|
||||
@script.check_d_imports << args
|
||||
end
|
||||
|
||||
# Check for a library.
|
||||
def check_lib(*args)
|
||||
@script.check_libs ||= []
|
||||
@script.check_libs << args
|
||||
end
|
||||
|
||||
# Check for an executable.
|
||||
def check_executable(*args)
|
||||
@script.check_executables ||= []
|
||||
@@ -71,31 +77,35 @@ module Rscons
|
||||
# Project name.
|
||||
attr_accessor :project_name
|
||||
|
||||
# @return [Array<String>]
|
||||
# @return [Array<Array>]
|
||||
# C compilers to check for.
|
||||
attr_accessor :check_c_compiler
|
||||
|
||||
# @return [Array<String>]
|
||||
# @return [Array<Array>]
|
||||
# C++ compilers to check for.
|
||||
attr_accessor :check_cxx_compiler
|
||||
|
||||
# @return [Array<String>]
|
||||
# @return [Array<Array>]
|
||||
# D compilers to check for.
|
||||
attr_accessor :check_d_compiler
|
||||
|
||||
# @return [Array<String>]
|
||||
# @return [Array<Array>]
|
||||
# C headers to check for.
|
||||
attr_accessor :check_c_headers
|
||||
|
||||
# @return [Array<String>]
|
||||
# @return [Array<Array>]
|
||||
# C++ headers to check for.
|
||||
attr_accessor :check_cxx_headers
|
||||
|
||||
# @return [Array<String>]
|
||||
# @return [Array<Array>]
|
||||
# D imports to check for.
|
||||
attr_accessor :check_d_imports
|
||||
|
||||
# @return [Array<String>]
|
||||
# @return [Array<Array>]
|
||||
# Libraries to check for.
|
||||
attr_accessor :check_libs
|
||||
|
||||
# @return [Array<Array>]
|
||||
# Executables to check for.
|
||||
attr_accessor :check_executables
|
||||
|
||||
|
||||
Reference in new issue
Block a user