Module: Emplace

Defined in:
lib/emplace.rb

Defined Under Namespace

Classes: CMakeBuild, Darwin, Linux, Project, Unix, Windows

Class Method Summary collapse

Class Method Details

.appveyor(base) ⇒ Object



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# File 'lib/emplace.rb', line 126

def self.appveyor(base)
  Class.new(base) {
    def cmake_generator
      case arch
      when 'x86'
        'Visual Studio 14'
      when 'x64'
        'Visual Studio 14 Win64'
      end
    end
    def arch
      case ENV['PLATFORM']
      when'x64'
        'x64'
      else
        'x86'
      end
    end
    def system_name
      if cfg = ENV['CONFIGURATION']
        "#{super}-msvc-#{cfg.downcase}"
      else
        "#{super}-msvc"
      end
    end
    def build(dir)
      if cfg = ENV['CONFIGURATION']
        sh "cmake --build #{dir} --target install --config #{cfg}"
      else
        super
      end
    end
    def package(name, dir)
      sh "7z a #{package_name(name)} #{name}", dir
    end
    def extract(name, dir)
      sh "7z x #{package_name(name)}", dir
    end
  }
end

.load_envObject



167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/emplace.rb', line 167

def self.load_env
  platform = case RUBY_PLATFORM
  when /mswin|mingw/
    Windows
  when /darwin/
    Darwin
  when /linux/
    Linux
  else
    Unix
  end

  if ENV['TRAVIS']
    travis platform
  elsif ENV['APPVEYOR']
    appveyor platform
  else
    platform
  end.new
end

.travis(base) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
# File 'lib/emplace.rb', line 114

def self.travis(base)
  Class.new(base) {
    def system_name
      if cc = ENV['CC']
        "#{super}-#{cc}"
      else
        super
      end
    end
  }
end