diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/-test-/cxxanyargs/extconf.rb | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/ext/-test-/cxxanyargs/extconf.rb b/ext/-test-/cxxanyargs/extconf.rb index 6241e836aa..0c5344a1e5 100644 --- a/ext/-test-/cxxanyargs/extconf.rb +++ b/ext/-test-/cxxanyargs/extconf.rb @@ -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 |