rake-compiler 1.1.3 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.md +25 -2
- data/lib/rake/baseextensiontask.rb +3 -0
- data/lib/rake/extensiontask.rb +42 -19
- data/lib/rake/javaextensiontask.rb +17 -9
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 02cad822f10b4321127ce0c91ecb9ce1b7465897be75cb63864598f67a0862f9
         | 
| 4 | 
            +
              data.tar.gz: e892ced800adc8b779b7a248f726590d2a9967c6efb95817778af4b51f650d4a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b773ca5038495c9301561f7f093dd292a90c8987d71964234359e742e159e3dcceba66762a12c161a79b60c0d8eb55b2fc1d65dfb186a64b8905ea75148090f5
         | 
| 7 | 
            +
              data.tar.gz: 281a93c3f8e00a01ede2150bff92f8898406fef693192d1a83710eb7e40c07e53229f91aeee8c661489a4901e81c702e8d55f667858f59ddeb47f8f93da75ab3
         | 
    
        data/History.md
    CHANGED
    
    | @@ -1,7 +1,30 @@ | |
| 1 | 
            -
            ### 1.1. | 
| 1 | 
            +
            ### 1.1.7 / 2022-01-04
         | 
| 2 2 |  | 
| 3 3 | 
             
            * Fixes:
         | 
| 4 | 
            -
              * Fix  | 
| 4 | 
            +
              * Fix binary paths for staging and clobber.
         | 
| 5 | 
            +
                [#197](https://github.com/rake-compiler/rake-compiler/issues/197) [Patch by konsolebox]
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ### 1.1.6 / 2021-12-12
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            * Fixes:
         | 
| 10 | 
            +
              * Fix a regression bug that `Symbol` can't be used for `name` of `Rake::ExtensionTask.new`.
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ### 1.1.5 / 2021-12-12
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            * Fixes:
         | 
| 15 | 
            +
              * Fix a regression bug that wrong install location is used when name that includes `/` is specified to `Rake::ExtensionTask.new`.
         | 
| 16 | 
            +
                [#196](https://github.com/rake-compiler/rake-compiler/issues/196) [Reported by konsolebox]
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            ### 1.1.4 / 2021-12-11
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            * Fixes:
         | 
| 21 | 
            +
              * Fix a regression bug that installed gem can't be found on cross compile.
         | 
| 22 | 
            +
                [#195](https://github.com/rake-compiler/rake-compiler/issues/195) [Reported by Mike Dalessio]
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            ### 1.1.3 / 2021-12-08
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            * Fixes:
         | 
| 27 | 
            +
              * Fix a regression bug that wrong install location is used.
         | 
| 5 28 | 
             
                [#194](https://github.com/rake-compiler/rake-compiler/issues/194) [Reported by Andrew Kane]
         | 
| 6 29 |  | 
| 7 30 | 
             
            ### 1.1.2 / 2021-12-07
         | 
| @@ -40,6 +40,9 @@ module Rake | |
| 40 40 | 
             
                  @tmp_dir = 'tmp'
         | 
| 41 41 | 
             
                  @ext_dir = "ext/#{@name}"
         | 
| 42 42 | 
             
                  @lib_dir = 'lib'
         | 
| 43 | 
            +
                  if @name and File.dirname(@name.to_s) != "."
         | 
| 44 | 
            +
                    @lib_dir += "/#{File.dirname(@name.to_s)}"
         | 
| 45 | 
            +
                  end
         | 
| 43 46 | 
             
                  @config_options = []
         | 
| 44 47 | 
             
                  @extra_options = ARGV.select { |i| i =~ /\A--?/ }
         | 
| 45 48 | 
             
                end
         | 
    
        data/lib/rake/extensiontask.rb
    CHANGED
    
    | @@ -82,9 +82,12 @@ module Rake | |
| 82 82 | 
             
                private
         | 
| 83 83 | 
             
                # copy other gem files to staging directory
         | 
| 84 84 | 
             
                def define_staging_file_tasks(files, lib_path, stage_path, platf, ruby_ver)
         | 
| 85 | 
            +
                  # lib_binary_path
         | 
| 86 | 
            +
                  lib_binary_path = "#{lib_path}/#{File.basename(binary(platf))}"
         | 
| 87 | 
            +
             | 
| 85 88 | 
             
                  files.each do |gem_file|
         | 
| 86 89 | 
             
                    # ignore directories and the binary extension
         | 
| 87 | 
            -
                    next if File.directory?(gem_file) || gem_file ==  | 
| 90 | 
            +
                    next if File.directory?(gem_file) || gem_file == lib_binary_path
         | 
| 88 91 | 
             
                    stage_file = "#{stage_path}/#{gem_file}"
         | 
| 89 92 |  | 
| 90 93 | 
             
                    # copy each file from base to stage directory
         | 
| @@ -105,12 +108,13 @@ module Rake | |
| 105 108 | 
             
                  platf = for_platform || platform
         | 
| 106 109 |  | 
| 107 110 | 
             
                  binary_path = binary(platf)
         | 
| 111 | 
            +
                  binary_base_name = File.basename(binary_path)
         | 
| 108 112 |  | 
| 109 113 | 
             
                  # lib_path
         | 
| 110 114 | 
             
                  lib_path = lib_dir
         | 
| 111 115 |  | 
| 112 | 
            -
                  lib_binary_path | 
| 113 | 
            -
                   | 
| 116 | 
            +
                  # lib_binary_path
         | 
| 117 | 
            +
                  lib_binary_path = "#{lib_path}/#{binary_base_name}"
         | 
| 114 118 |  | 
| 115 119 | 
             
                  # tmp_path
         | 
| 116 120 | 
             
                  tmp_path = "#{@tmp_dir}/#{platf}/#{@name}/#{ruby_ver}"
         | 
| @@ -119,19 +123,19 @@ module Rake | |
| 119 123 | 
             
                  siteconf_path = "#{tmp_path}/.rake-compiler-siteconf.rb"
         | 
| 120 124 | 
             
                  tmp_binary_path = "#{tmp_path}/#{binary_path}"
         | 
| 121 125 | 
             
                  tmp_binary_dir_path = File.dirname(tmp_binary_path)
         | 
| 122 | 
            -
                  stage_binary_path = "#{stage_path}/#{ | 
| 126 | 
            +
                  stage_binary_path = "#{stage_path}/#{lib_binary_path}"
         | 
| 123 127 | 
             
                  stage_binary_dir_path = File.dirname(stage_binary_path)
         | 
| 124 128 |  | 
| 125 129 | 
             
                  # cleanup and clobbering
         | 
| 126 130 | 
             
                  CLEAN.include(tmp_path)
         | 
| 127 131 | 
             
                  CLEAN.include(stage_path)
         | 
| 128 | 
            -
                  CLOBBER.include( | 
| 132 | 
            +
                  CLOBBER.include(lib_binary_path)
         | 
| 129 133 | 
             
                  CLOBBER.include("#{@tmp_dir}")
         | 
| 130 134 |  | 
| 131 135 | 
             
                  # directories we need
         | 
| 132 136 | 
             
                  directory tmp_path
         | 
| 133 137 | 
             
                  directory tmp_binary_dir_path
         | 
| 134 | 
            -
                  directory  | 
| 138 | 
            +
                  directory lib_path
         | 
| 135 139 | 
             
                  directory stage_binary_dir_path
         | 
| 136 140 |  | 
| 137 141 | 
             
                  directory File.dirname(siteconf_path)
         | 
| @@ -150,7 +154,7 @@ module Rake | |
| 150 154 |  | 
| 151 155 | 
             
                  # copy binary from temporary location to final lib
         | 
| 152 156 | 
             
                  # tmp/extension_name/extension_name.{so,bundle} => lib/
         | 
| 153 | 
            -
                  task "copy:#{@name}:#{platf}:#{ruby_ver}" => [ | 
| 157 | 
            +
                  task "copy:#{@name}:#{platf}:#{ruby_ver}" => [lib_path, tmp_binary_path, "#{tmp_path}/Makefile"] do
         | 
| 154 158 | 
             
                    # install in lib for native platform only
         | 
| 155 159 | 
             
                    unless for_platform
         | 
| 156 160 | 
             
                      sh "#{make} install target_prefix=", chdir: tmp_path
         | 
| @@ -175,8 +179,8 @@ Java extension should be preferred. | |
| 175 179 |  | 
| 176 180 | 
             
                    chdir tmp_path do
         | 
| 177 181 | 
             
                      sh make
         | 
| 178 | 
            -
                      if binary_path !=  | 
| 179 | 
            -
                        cp  | 
| 182 | 
            +
                      if binary_path != binary_base_name
         | 
| 183 | 
            +
                        cp binary_base_name, binary_path
         | 
| 180 184 | 
             
                      end
         | 
| 181 185 | 
             
                    end
         | 
| 182 186 | 
             
                  end
         | 
| @@ -237,7 +241,7 @@ Java extension should be preferred. | |
| 237 241 | 
             
                  # platform matches the indicated one.
         | 
| 238 242 | 
             
                  if platf == RUBY_PLATFORM then
         | 
| 239 243 | 
             
                    # ensure file is always copied
         | 
| 240 | 
            -
                    file  | 
| 244 | 
            +
                    file lib_binary_path => ["copy:#{name}:#{platf}:#{ruby_ver}"]
         | 
| 241 245 |  | 
| 242 246 | 
             
                    task "compile:#{@name}" => ["compile:#{@name}:#{platf}"]
         | 
| 243 247 | 
             
                    task "compile" => ["compile:#{platf}"]
         | 
| @@ -253,6 +257,9 @@ Java extension should be preferred. | |
| 253 257 | 
             
                  # lib_path
         | 
| 254 258 | 
             
                  lib_path = lib_dir
         | 
| 255 259 |  | 
| 260 | 
            +
                  # lib_binary_path
         | 
| 261 | 
            +
                  lib_binary_path = "#{lib_path}/#{File.basename(binary(platf))}"
         | 
| 262 | 
            +
             | 
| 256 263 | 
             
                  # Update compiled platform/version combinations
         | 
| 257 264 | 
             
                  @ruby_versions_per_platform[platf] << ruby_ver
         | 
| 258 265 |  | 
| @@ -332,13 +339,13 @@ Java extension should be preferred. | |
| 332 339 | 
             
                  end
         | 
| 333 340 |  | 
| 334 341 | 
             
                  # add binaries to the dependency chain
         | 
| 335 | 
            -
                  task "native:#{@gem_spec.name}:#{platf}" => ["#{stage_path}/#{ | 
| 342 | 
            +
                  task "native:#{@gem_spec.name}:#{platf}" => ["#{stage_path}/#{lib_binary_path}"]
         | 
| 336 343 |  | 
| 337 344 | 
             
                  # ensure the extension get copied
         | 
| 338 | 
            -
                  unless Rake::Task.task_defined?( | 
| 339 | 
            -
                    file  | 
| 345 | 
            +
                  unless Rake::Task.task_defined?(lib_binary_path) then
         | 
| 346 | 
            +
                    file lib_binary_path => ["copy:#{@name}:#{platf}:#{ruby_ver}"]
         | 
| 340 347 | 
             
                  end
         | 
| 341 | 
            -
                  file "#{stage_path}/#{ | 
| 348 | 
            +
                  file "#{stage_path}/#{lib_binary_path}" => ["copy:#{@name}:#{platf}:#{ruby_ver}"]
         | 
| 342 349 |  | 
| 343 350 | 
             
                  # Allow segmented packaging by platform (open door for 'cross compile')
         | 
| 344 351 | 
             
                  task "native:#{platf}" => ["native:#{@gem_spec.name}:#{platf}"]
         | 
| @@ -397,6 +404,9 @@ Java extension should be preferred. | |
| 397 404 | 
             
                  # lib_path
         | 
| 398 405 | 
             
                  lib_path = lib_dir
         | 
| 399 406 |  | 
| 407 | 
            +
                  # lib_binary_path
         | 
| 408 | 
            +
                  lib_binary_path = "#{lib_path}/#{File.basename(binary(for_platform))}"
         | 
| 409 | 
            +
             | 
| 400 410 | 
             
                  unless rbconfig_file = config_file["rbconfig-#{for_platform}-#{ruby_ver}"] then
         | 
| 401 411 | 
             
                    warn "no configuration section for specified version of Ruby (rbconfig-#{for_platform}-#{ruby_ver})"
         | 
| 402 412 | 
             
                    return
         | 
| @@ -416,8 +426,21 @@ Java extension should be preferred. | |
| 416 426 | 
             
                  # genearte fake.rb for different ruby versions
         | 
| 417 427 | 
             
                  file "#{tmp_path}/fake.rb" => [rbconfig_file] do |t|
         | 
| 418 428 | 
             
                    File.open(t.name, 'w') do |f|
         | 
| 419 | 
            -
                       | 
| 420 | 
            -
                       | 
| 429 | 
            +
                      # Keep the original RbConfig::CONFIG["ENABLE_SHARED"] to use
         | 
| 430 | 
            +
                      # the same RubyGems extension directory. See also
         | 
| 431 | 
            +
                      # Gem::BasicSpecificaion#extenions_dir and
         | 
| 432 | 
            +
                      # Gem.extension_api_version.
         | 
| 433 | 
            +
                      #
         | 
| 434 | 
            +
                      # if RbConfig::CONFIG["ENABLE_SHARED"] == "no"
         | 
| 435 | 
            +
                      #   "extensions/x86_64-linux/2.5.0-static"
         | 
| 436 | 
            +
                      # else
         | 
| 437 | 
            +
                      #   "extensions/x86_64-linux/2.5.0"
         | 
| 438 | 
            +
                      # end
         | 
| 439 | 
            +
                      f.puts("require 'rbconfig'")
         | 
| 440 | 
            +
                      f.puts("original_enable_shared = RbConfig::CONFIG['ENABLE_SHARED']")
         | 
| 441 | 
            +
                      f.puts(fake_rb(for_platform, ruby_ver))
         | 
| 442 | 
            +
                      f.puts(File.read(t.prerequisites.first))
         | 
| 443 | 
            +
                      f.puts("RbConfig::CONFIG['ENABLE_SHARED'] = original_enable_shared")
         | 
| 421 444 | 
             
                    end
         | 
| 422 445 | 
             
                  end
         | 
| 423 446 |  | 
| @@ -450,12 +473,12 @@ Java extension should be preferred. | |
| 450 473 |  | 
| 451 474 | 
             
                    # clear lib/binary dependencies and trigger cross platform ones
         | 
| 452 475 | 
             
                    # check if lib/binary is defined (damn bundle versus so versus dll)
         | 
| 453 | 
            -
                    if Rake::Task.task_defined?( | 
| 454 | 
            -
                      Rake::Task[ | 
| 476 | 
            +
                    if Rake::Task.task_defined?(lib_binary_path) then
         | 
| 477 | 
            +
                      Rake::Task[lib_binary_path].prerequisites.clear
         | 
| 455 478 | 
             
                    end
         | 
| 456 479 |  | 
| 457 480 | 
             
                    # FIXME: targeting multiple platforms copies the file twice
         | 
| 458 | 
            -
                    file  | 
| 481 | 
            +
                    file lib_binary_path => ["copy:#{@name}:#{for_platform}:#{ruby_ver}"]
         | 
| 459 482 |  | 
| 460 483 | 
             
                    # if everything for native task is in place
         | 
| 461 484 | 
             
                    if @gem_spec && @gem_spec.platform == 'ruby' then
         | 
| @@ -53,15 +53,20 @@ module Rake | |
| 53 53 | 
             
                  # platform usage
         | 
| 54 54 | 
             
                  platf = for_platform || platform
         | 
| 55 55 |  | 
| 56 | 
            +
                  binary_path = binary(platf)
         | 
| 57 | 
            +
             | 
| 56 58 | 
             
                  # lib_path
         | 
| 57 59 | 
             
                  lib_path = lib_dir
         | 
| 58 60 |  | 
| 61 | 
            +
                  # lib_binary_path
         | 
| 62 | 
            +
                  lib_binary_path = "#{lib_path}/#{File.basename(binary_path)}"
         | 
| 63 | 
            +
             | 
| 59 64 | 
             
                  # tmp_path
         | 
| 60 65 | 
             
                  tmp_path = "#{@tmp_dir}/#{platf}/#{@name}"
         | 
| 61 66 |  | 
| 62 67 | 
             
                  # cleanup and clobbering
         | 
| 63 68 | 
             
                  CLEAN.include(tmp_path)
         | 
| 64 | 
            -
                  CLOBBER.include( | 
| 69 | 
            +
                  CLOBBER.include(lib_binary_path)
         | 
| 65 70 | 
             
                  CLOBBER.include("#{@tmp_dir}")
         | 
| 66 71 |  | 
| 67 72 | 
             
                  # directories we need
         | 
| @@ -70,11 +75,11 @@ module Rake | |
| 70 75 |  | 
| 71 76 | 
             
                  # copy binary from temporary location to final lib
         | 
| 72 77 | 
             
                  # tmp/extension_name/extension_name.{so,bundle} => lib/
         | 
| 73 | 
            -
                  task "copy:#{@name}:#{platf}" => [lib_path, "#{tmp_path}/#{ | 
| 74 | 
            -
                    install "#{tmp_path}/#{ | 
| 78 | 
            +
                  task "copy:#{@name}:#{platf}" => [lib_path, "#{tmp_path}/#{binary_path}"] do
         | 
| 79 | 
            +
                    install "#{tmp_path}/#{binary_path}", lib_binary_path
         | 
| 75 80 | 
             
                  end
         | 
| 76 81 |  | 
| 77 | 
            -
                  file "#{tmp_path}/#{ | 
| 82 | 
            +
                  file "#{tmp_path}/#{binary_path}" => "#{tmp_path}/.build" do
         | 
| 78 83 |  | 
| 79 84 | 
             
                    class_files = FileList["#{tmp_path}/**/*.class"].
         | 
| 80 85 | 
             
                      gsub("#{tmp_path}/", '')
         | 
| @@ -86,7 +91,7 @@ module Rake | |
| 86 91 | 
             
                      ["-C #{tmp_path}", path]
         | 
| 87 92 | 
             
                    }.flatten
         | 
| 88 93 |  | 
| 89 | 
            -
                    sh "jar cf #{tmp_path}/#{ | 
| 94 | 
            +
                    sh "jar cf #{tmp_path}/#{binary_path} #{args.join(' ')}"
         | 
| 90 95 | 
             
                  end
         | 
| 91 96 |  | 
| 92 97 | 
             
                  file "#{tmp_path}/.build" => [tmp_path] + source_files do
         | 
| @@ -137,7 +142,7 @@ execute the Rake compilation task using the JRuby interpreter. | |
| 137 142 | 
             
                  # platform matches the indicated one.
         | 
| 138 143 | 
             
                  if platf == RUBY_PLATFORM then
         | 
| 139 144 | 
             
                    # ensure file is always copied
         | 
| 140 | 
            -
                    file  | 
| 145 | 
            +
                    file lib_binary_path => ["copy:#{name}:#{platf}"]
         | 
| 141 146 |  | 
| 142 147 | 
             
                    task "compile:#{@name}" => ["compile:#{@name}:#{platf}"]
         | 
| 143 148 | 
             
                    task "compile" => ["compile:#{platf}"]
         | 
| @@ -184,12 +189,15 @@ execute the Rake compilation task using the JRuby interpreter. | |
| 184 189 | 
             
                      end
         | 
| 185 190 | 
             
                    end
         | 
| 186 191 |  | 
| 192 | 
            +
                    # lib_binary_path
         | 
| 193 | 
            +
                    lib_binary_path = "#{lib_path}/#{File.basename(binary(platform))}"
         | 
| 194 | 
            +
             | 
| 187 195 | 
             
                    # add binaries to the dependency chain
         | 
| 188 | 
            -
                    task "java:#{@gem_spec.name}" => [ | 
| 196 | 
            +
                    task "java:#{@gem_spec.name}" => [lib_binary_path]
         | 
| 189 197 |  | 
| 190 198 | 
             
                    # ensure the extension get copied
         | 
| 191 | 
            -
                    unless Rake::Task.task_defined?( | 
| 192 | 
            -
                      file  | 
| 199 | 
            +
                    unless Rake::Task.task_defined?(lib_binary_path) then
         | 
| 200 | 
            +
                      file lib_binary_path => ["copy:#{name}:#{platform}"]
         | 
| 193 201 | 
             
                    end
         | 
| 194 202 |  | 
| 195 203 | 
             
                    task 'java' => ["java:#{@gem_spec.name}"]
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rake-compiler
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.1. | 
| 4 | 
            +
              version: 1.1.7
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Kouhei Sutou
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2022-01-03 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rake
         | 
| @@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 145 145 | 
             
                - !ruby/object:Gem::Version
         | 
| 146 146 | 
             
                  version: 1.8.23
         | 
| 147 147 | 
             
            requirements: []
         | 
| 148 | 
            -
            rubygems_version: 3. | 
| 148 | 
            +
            rubygems_version: 3.4.0.dev
         | 
| 149 149 | 
             
            signing_key: 
         | 
| 150 150 | 
             
            specification_version: 4
         | 
| 151 151 | 
             
            summary: Rake-based Ruby Extension (C, Java) task generator.
         |