mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
add minimaist C++ check
This is a test extension so we basically want test failures rather than a configure breakage but if there is no C++ compiler, we need no test at all because there will be no chance for the tested header file to be used later. This makes it possible to build the ruby binary without any C++ compiler installed in a build environment.
This commit is contained in:
parent
150f514e19
commit
89c5d5a64e
Notes:
git
2019-09-09 21:28:05 +09:00
1 changed files with 41 additions and 2 deletions
|
@ -1,2 +1,41 @@
|
|||
# frozen_string_literal: true
|
||||
create_makefile("-test-/cxxanyargs")
|
||||
# frozen_string_literal: false
|
||||
|
||||
cfg = RbConfig::CONFIG.merge(
|
||||
'hdrdir' => $hdrdir.quote,
|
||||
'src' => "#{CONFTEST_C}",
|
||||
'arch_hdrdir' => $arch_hdrdir.quote,
|
||||
'top_srcdir' => $top_srcdir.quote,
|
||||
'CC' => RbConfig::CONFIG['CXX'],
|
||||
'CFLAGS' => RbConfig::CONFIG['CXXFLAGS'],
|
||||
'INCFLAGS' => "#$INCFLAGS",
|
||||
'CPPFLAGS' => "#$CPPFLAGS",
|
||||
'ARCH_FLAG' => "#$ARCH_FLAG",
|
||||
'LDFLAGS' => "#$LDFLAGS",
|
||||
'LOCAL_LIBS' => "#$LOCAL_LIBS",
|
||||
'LIBS' => "#$LIBS"
|
||||
)
|
||||
cxx = RbConfig::expand(TRY_LINK.dup, cfg)
|
||||
src = create_tmpsrc(<<~'begin') do |x|
|
||||
#include "ruby/config.h"
|
||||
|
||||
namespace {
|
||||
typedef int conftest[SIZEOF_LONG == sizeof(long) ? 1 : -1];
|
||||
typedef int conftest[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, const char** argv)
|
||||
{
|
||||
return !!argv[argc];
|
||||
}
|
||||
begin
|
||||
# We are wiping ruby.h from the source because that header file is the
|
||||
# subject we are going to test in this extension library.
|
||||
x.sub! %<#include "ruby.h">, ''
|
||||
end
|
||||
|
||||
begin
|
||||
create_makefile("-test-/cxxanyargs") if xsystem(cxx)
|
||||
ensure
|
||||
log_src src
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue