| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
GitHub: #123
Reported by Aaron Stone. Thanks!!!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous fake mechanism worked by hooking onto the
"require 'rbconfig'" call.
This is problematic because bundler internally requires rbconfig, but doesn't
work corretly in a faked environment.
It then fails to load gems that are also part of the standard library, like
json and rdoc.
This results in issues like https://github.com/rake-compiler/rake-compiler-dock/issues/8
The fake mechanism is now changed to hook onto the "require 'mkrb'" call,
which is typically part of the extconf file, and it is where the faked platform
values are actually needed.
That way it is loaded after bundler/setup, so that the library paths are
set according to the Gemfile.lock, to the native Linux libraries, before
the fake environment is active.
Please note, that the build directory of a given gem needs to be cleared,
in order to get updated fake files. So do a "rm tmp pkg -rf".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some platforms provide a working `make' program out of the box, but
some versions of this program won't return a successful exit status
code when given `-v' as argument.
One such platform is FreeBSD, providing the `make' program in the base
system which is based on `pmake'. This version won't accept `-v':
$ make -v
usage: make [-BeikNnqrstWwX]
[-C directory] [-D variable] [-d flags] [-f makefile]
[-I directory] [-J private] [-j max_jobs] [-m directory] [-T file]
[-V variable] [variable=value] [target ...]
zsh: exit 2 make -v
This change ensures detection with `gmake -v` or `make -v` will
continue to work as expected, but adds a fallback on plain `make' when
tested successfully with the `command' shell builtin.
|
| |
|
| |
|
|
|
|
| |
Resolves #98
|
|
|
|
|
|
| |
"cannot load such file -- win32/resolv" when it is required later on.
This solves issue https://github.com/tjschuck/rake-compiler-dev-box/issues/5
|
| |
|
|\
| |
| | |
Add support for cross builds for multiple target platforms.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Building gems for distinct platforms within one rake run conflicted
in the lib/ directory, because all binary extensions were stored
there and were copied from there to become packaged.
This resulted in storing a binary extension of a wrong platform in
a gem.
To avoid this, the files to package are now stored in a platform specific
stage directory and are used to package the specific gem.
|
| |
| |
| |
| |
| | |
This is especially useful to set distinct library paths for different
target platforms.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also prefix the selection of rbconfig in config.yml with the corresponding
Ruby platform.
This allowes to use cross compiled Ruby-builds for multiple target
architectures on the same machine. This is especially usefull to compile
for Ruby-2.0 i386-mingw32 and x64-mingw32 platforms.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ruby 1.9 bundles RubyGems and it is required automatically before
command line "-r" option. It breaks fake.rb trick. We cannot build fat
gem without fake.rb trick because building fat gem requires two or
more Rubies and fake.rb fakes Rubies.
/tmp/rbconfig.rb:
p :rbconfig
puts caller
module RbConfig
Config = {}
end
/tmp/fake.rb:
p :fake
Command:
% cd /tmp
% ruby -v -I . -r fake -e ''
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
:rbconfig
/usr/lib/ruby/1.9.1/rubygems.rb:31:in `require'
/usr/lib/ruby/1.9.1/rubygems.rb:31:in `<top (required)>'
<internal:gem_prelude>:1:in `require'
<internal:gem_prelude>:1:in `<compiled>'
:fake
The command output shows fake.rb that is used to change RUBY_PLATFORM,
RUBY_VERSION and so on in rake-compiler is required after
rbconfig.rb. And rbconfig.rb is required from RubyGems.
fake.rb should be required before rbconfig.rb because rbconfig.rb uses
RUBY_VERSION. So this change puts 'require "fake.rb"' into
rbconfig.rb. It ensures that fake.rb is evaluated before rbconfig.rb
body is evaluated.
|
| |
|
|
|
|
| |
This allows me to run a task which generates java source files, prior to having rake-compiler compile them.
|
| |
|
|\
| |
| | |
Detect 32bit mingw-gcc executable for cross compile
|
| | |
|
|/
|
|
| |
This fixes issue #16.
|
|\
| |
| | |
Only emit warnings when doing cross-compilation tasks
|
| | |
|
| |
| |
| |
| | |
And also update History to reflect the new change in codebase
|
|/
|
|
|
|
| |
Example usage:
rake compile -- --with-libyaml-dir=C:/devlibs/libyaml
|
| |
|
|
|
|
|
|
|
|
|
| |
Since Rake::ExtensionTask reuses the gem specification, we fall into
the memoization issue described in RubyGems bug:
http://github.com/rubygems/rubygems/issues/78
Applied a workaround until that issue is sorted out.
|
|
|
|
|
|
|
|
|
| |
Rake::GemPackageTask is deprecated and will be removed.
Gem::PackageTask has been present since RubyGems 1.3.2 and should be
used instead.
rake-compiler already depends on rubygems >= 1.3.5 so no damage done here.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
I tried to outsmart Ruby, but he is smarter than me. mkmf.rb gets
confused by CROSS_COMPILING definition.
Thanks goes to Aman Gupta for the debug.
Closes GH-28
|
|
|
|
|
| |
Using fullpath works to workaround invocation issues with .exe in
old versions of Ruby.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Pass explicit list of .class files, not wildcard.
* Because jar output directory is same as directory containing .class files, it
appeared that the jar command line tool was trying to recursively jar itself.
* Handle case where $ in .class file names (seen with use of inner classes, etc.)
was being expanded out on *NIX systems.
* Change feature to test for the above.
* Thanks to Luis for helping work through this and ensuring compatibility with
both *NIX and Windows systems.
Signed-off-by: Alex Coles <alex@alexcolesportfolio.com>
|
|
|
|
|
|
|
| |
* Many additional options can be specified for javac, but this won't be
implemented for this version of rake-compiler.
Signed-off-by: Alex Coles <alex@alexcolesportfolio.com>
|
|
|
|
| |
Signed-off-by: Alex Coles <alex@alexcolesportfolio.com>
|
| |
|
|
|
|
|
| |
Reduce to only one the display of warnings about usage
of ExtensionTask or JavaExtensionTask in mixed environments.
|