ryb 0.2.2.0 → 0.2.2.1
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/lib/ryb/dsl.rb +5 -5
- data/lib/ryb/gem.rb +1 -1
- data/lib/ryb/ninja.rb +46 -3
- data/lib/ryb/visual_studio.rb +2 -0
- metadata +3 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b3a0798e444f9bbea1b7dcae4c18a8c238faaff2
         | 
| 4 | 
            +
              data.tar.gz: 5985a2218e703b9736338ba85ca4da10bf769182
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 98eab62ee6529b19c35bb0a0b19b3e6ed2cce830fb5cc866175c00b10c42dae28d13a3e6a96d729a3c318db0f468b77bedf716da1498aac0d97afdf9c0ae77a3
         | 
| 7 | 
            +
              data.tar.gz: 92d73b5b190dd663408ee39b5985895fd877e0cfc24d30f204f11659e36d11042aeb859fe0a39fd7177e6aba2db55f9a0183561c2de43e68e5da85ff779461c8
         | 
    
        data/lib/ryb/dsl.rb
    CHANGED
    
    | @@ -117,24 +117,24 @@ module Ryb | |
| 117 117 | 
             
                end
         | 
| 118 118 |  | 
| 119 119 | 
             
                module Code
         | 
| 120 | 
            -
                  def add_source_file(file)
         | 
| 120 | 
            +
                  def add_source_file(file, **options)
         | 
| 121 121 | 
             
                    case file
         | 
| 122 122 | 
             
                      when SourceFile
         | 
| 123 123 | 
             
                        @spec.sources ||= []
         | 
| 124 124 | 
             
                        @spec.sources = @spec.sources + [file]
         | 
| 125 125 | 
             
                      when String
         | 
| 126 | 
            -
                        add_source_file(SourceFile.new(file))
         | 
| 126 | 
            +
                        add_source_file(SourceFile.new(file, options))
         | 
| 127 127 | 
             
                      end
         | 
| 128 128 | 
             
                  end
         | 
| 129 129 |  | 
| 130 | 
            -
                  def add_source_files(*files_and_patterns)
         | 
| 130 | 
            +
                  def add_source_files(*files_and_patterns, **options)
         | 
| 131 131 | 
             
                    [*files_and_patterns].each do |file_or_pattern|
         | 
| 132 132 | 
             
                      case file_or_pattern
         | 
| 133 133 | 
             
                        when SourceFile
         | 
| 134 | 
            -
                          add_source_file(file_or_pattern)
         | 
| 134 | 
            +
                          add_source_file(file_or_pattern, options)
         | 
| 135 135 | 
             
                        when String
         | 
| 136 136 | 
             
                          [*(Dir.glob(file_or_pattern))].each do |file|
         | 
| 137 | 
            -
                            add_source_file(file)
         | 
| 137 | 
            +
                            add_source_file(file, options)
         | 
| 138 138 | 
             
                          end
         | 
| 139 139 | 
             
                        end
         | 
| 140 140 | 
             
                    end
         | 
    
        data/lib/ryb/gem.rb
    CHANGED
    
    
    
        data/lib/ryb/ninja.rb
    CHANGED
    
    | @@ -48,11 +48,12 @@ module Ryb | |
| 48 48 | 
             
                    name = product.name.canonicalize
         | 
| 49 49 | 
             
                    namespace = "#{name}_#{tripletised.triplet.join('_')}"
         | 
| 50 50 |  | 
| 51 | 
            -
                    sdk = @vc.sdks[:windows].select{|sdk| sdk.version  | 
| 51 | 
            +
                    sdk = @vc.sdks[:windows].select{|sdk| sdk.version.to_f >= 7.1}.first
         | 
| 52 52 | 
             
                    sys_include_paths = @vc.includes + sdk.includes
         | 
| 53 53 | 
             
                    sys_lib_paths = @vc.libraries[arch] + sdk.libraries[arch]
         | 
| 54 54 |  | 
| 55 55 | 
             
                    @ninjafile.variable "#{namespace}_cflags_sys", VisualStudio::Compiler.include_paths_to_flags(sys_include_paths).join(' ')
         | 
| 56 | 
            +
                    @ninjafile.variable "#{namespace}_cxxflags_sys", "$#{namespace}_cflags_sys"
         | 
| 56 57 | 
             
                    @ninjafile.variable "#{namespace}_ldflags_sys", VisualStudio::Linker.library_paths_to_flags(sys_lib_paths).join(' ')
         | 
| 57 58 |  | 
| 58 59 | 
             
                    cflags = cflags_for_product(project, product, tripletised)
         | 
| @@ -76,9 +77,8 @@ module Ryb | |
| 76 77 | 
             
                    @ninjafile.variable "#{namespace}_symbols", artifacts[0].gsub(/\.(exe|lib|dll)/, ".pdb")
         | 
| 77 78 |  | 
| 78 79 | 
             
                    # https://github.com/ninja-build/ninja/blob/d1763746b65cc7349d4ed9478befdb651aa24589/src/msvc_helper_main-win32.cc#L38
         | 
| 79 | 
            -
                    # ninja -t msvc -e _build/#{namespace}.env -- cl.exe ...
         | 
| 80 80 | 
             
                    env_block = "#@build/#{namespace}.env_block"
         | 
| 81 | 
            -
                    env = @vc.environment(target: {platform: :windows, architecture: arch})
         | 
| 81 | 
            +
                    env = @vc.environment(target: {platform: :windows, architecture: arch}, base: environment)
         | 
| 82 82 | 
             
                    # "PATH=#{(@vc.binaries[arch] + sdk.binaries[arch]).join(';')}\0"
         | 
| 83 83 | 
             
                    File.write(env_block, env.map{|env_var, value| "#{env_var}=#{value}"}.join("\0"))
         | 
| 84 84 |  | 
| @@ -137,6 +137,49 @@ module Ryb | |
| 137 137 | 
             
                  end
         | 
| 138 138 |  | 
| 139 139 | 
             
                  private
         | 
| 140 | 
            +
                    def environment
         | 
| 141 | 
            +
                      variables = [
         | 
| 142 | 
            +
                        'ALLUSERSPROFILE',
         | 
| 143 | 
            +
                        'APPDATA',
         | 
| 144 | 
            +
                        'CommonProgramFiles',
         | 
| 145 | 
            +
                        'CommonProgramFiles(x86)',
         | 
| 146 | 
            +
                        'CommonProgramW6432',
         | 
| 147 | 
            +
                        'ComSpec',
         | 
| 148 | 
            +
                        'HOMEDRIVE',
         | 
| 149 | 
            +
                        'HOMEPATH',
         | 
| 150 | 
            +
                        'LOCALAPPDATA',
         | 
| 151 | 
            +
                        'Path',
         | 
| 152 | 
            +
                        'PATHEXT',
         | 
| 153 | 
            +
                        'ProgramData',
         | 
| 154 | 
            +
                        'ProgramFiles',
         | 
| 155 | 
            +
                        'ProgramFiles(x86)',
         | 
| 156 | 
            +
                        'ProgramW6432',
         | 
| 157 | 
            +
                        'PUBLIC',
         | 
| 158 | 
            +
                        'SystemDrive',
         | 
| 159 | 
            +
                        'SystemRoot',
         | 
| 160 | 
            +
                        'TEMP',
         | 
| 161 | 
            +
                        'TMP',
         | 
| 162 | 
            +
                        'USERDOMAIN',
         | 
| 163 | 
            +
                        'USERNAME',
         | 
| 164 | 
            +
                        'USERPROFILE',
         | 
| 165 | 
            +
                        'windir'
         | 
| 166 | 
            +
                      ]
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                      @environment ||= begin
         | 
| 169 | 
            +
                        require 'win32/registry'
         | 
| 170 | 
            +
                        ::Win32::Registry::HKEY_LOCAL_MACHINE.open("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", ::Win32::Registry::KEY_READ) do |originals|
         | 
| 171 | 
            +
                          variables.map { |variable|
         | 
| 172 | 
            +
                            value = begin
         | 
| 173 | 
            +
                              originals[variable]
         | 
| 174 | 
            +
                            rescue
         | 
| 175 | 
            +
                              ENV[variable]
         | 
| 176 | 
            +
                            end
         | 
| 177 | 
            +
                            [variable, value]
         | 
| 178 | 
            +
                          }.to_h
         | 
| 179 | 
            +
                        end
         | 
| 180 | 
            +
                      end
         | 
| 181 | 
            +
                    end
         | 
| 182 | 
            +
             | 
| 140 183 | 
             
                    def sources_for_product(product, tripletised)
         | 
| 141 184 | 
             
                      sources = [*product.sources] |
         | 
| 142 185 | 
             
                                [*tripletised.configuration.sources] |
         | 
    
        data/lib/ryb/visual_studio.rb
    CHANGED
    
    | @@ -41,6 +41,8 @@ module Ryb | |
| 41 41 | 
             
                  end
         | 
| 42 42 |  | 
| 43 43 | 
             
                  def self.generate_debug_symbols_to_flag(enabled)
         | 
| 44 | 
            +
                    # TODO(mtwilliams): Don't link to debug runtime.
         | 
| 45 | 
            +
                     # Do I need to expose another flag?
         | 
| 44 46 | 
             
                    # HACK(mtwilliams): Force writes to PDBs to be serialized.
         | 
| 45 47 | 
             
                    # Refer to https://msdn.microsoft.com/en-us/library/dn502518.aspx.
         | 
| 46 48 | 
             
                    enabled ? %w{/MDd /Zi /FS} : %w{/MD}
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ryb
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2.2. | 
| 4 | 
            +
              version: 0.2.2.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Michael Williams
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-09-05 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: gli
         | 
| @@ -186,9 +186,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 186 186 | 
             
                  version: '0'
         | 
| 187 187 | 
             
            requirements: []
         | 
| 188 188 | 
             
            rubyforge_project: 
         | 
| 189 | 
            -
            rubygems_version: 2.6. | 
| 189 | 
            +
            rubygems_version: 2.6.11
         | 
| 190 190 | 
             
            signing_key: 
         | 
| 191 191 | 
             
            specification_version: 4
         | 
| 192 192 | 
             
            summary: Rubifiy your builds!
         | 
| 193 193 | 
             
            test_files: []
         | 
| 194 | 
            -
            has_rdoc: 
         |