summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml31
-rw-r--r--lib/mruby/build.rb8
-rw-r--r--target/travis.rb18
3 files changed, 50 insertions, 7 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 335c0cdf6..2f8b69da7 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -6,7 +6,7 @@ jobs:
Ubuntu-1604:
runs-on: ubuntu-16.04
env:
- MRUBY_CONFIG: travis_config.rb
+ MRUBY_TARGET: travis
steps:
- uses: actions/checkout@v1
- name: apt
@@ -19,7 +19,7 @@ jobs:
Ubuntu-1804-gcc:
runs-on: ubuntu-18.04
env:
- MRUBY_CONFIG: travis_config.rb
+ MRUBY_TARGET: travis
CC: gcc
CXX: g++
steps:
@@ -34,7 +34,7 @@ jobs:
Ubuntu-1804-clang:
runs-on: ubuntu-18.04
env:
- MRUBY_CONFIG: travis_config.rb
+ MRUBY_TARGET: travis
CC: clang
CXX: clang++
steps:
@@ -49,7 +49,7 @@ jobs:
macOS:
runs-on: macos-latest
env:
- MRUBY_CONFIG: travis_config.rb
+ MRUBY_TARGET: travis
steps:
- uses: actions/checkout@v1
- name: brew
@@ -68,7 +68,7 @@ jobs:
- name: build
run: rake -E 'STDOUT.sync=true' test
env:
- MRUBY_CONFIG: travis_config.rb
+ MRUBY_TARGET: travis
CFLAGS: -g -O1 -Wall -Wundef
Windows-Cygwin:
@@ -94,9 +94,26 @@ jobs:
shell: cmd
run: C:\tools\cygwin\bin\ruby.exe /usr/bin/rake -E 'STDOUT.sync=true' -m
env:
- MRUBY_CONFIG: travis_config.rb
+ MRUBY_TARGET: travis
- name: test
shell: cmd
run: C:\tools\cygwin\bin\ruby.exe /usr/bin/rake -E 'STDOUT.sync=true' test
env:
- MRUBY_CONFIG: travis_config.rb
+ MRUBY_TARGET: travis
+
+ Windows-VC:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v1
+ - name: chocolatey
+ run: choco install -y ruby gperf
+ - name: build and test
+ shell: cmd
+ run: |
+ call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
+ rake -E "STDOUT.sync=true" -m -j4 -v test
+ env:
+ MRUBY_TARGET: appveyor
+ # TODO(take-cheeze): Re-enable /O2
+ CFLAGS: "/c /nologo /W3 /we4013 /Zi /MD /D_CRT_SECURE_NO_WARNINGS"
+ CXXFLAGS: "/c /nologo /W3 /Zi /MD /EHs /D_CRT_SECURE_NO_WARNINGS"
diff --git a/lib/mruby/build.rb b/lib/mruby/build.rb
index 9ba136cf3..78465fee6 100644
--- a/lib/mruby/build.rb
+++ b/lib/mruby/build.rb
@@ -276,6 +276,14 @@ EOS
end
end
+ def cygwin_filename(name)
+ if name.is_a?(Array)
+ name.flatten.map { |n| cygwin_filename(n) }
+ else
+ `cygpath -w "#{filename(name)}"`.strip
+ end
+ end
+
def exefile(name)
if name.is_a?(Array)
name.flatten.map { |n| exefile(n) }
diff --git a/target/travis.rb b/target/travis.rb
index f4bef0a52..6af9c98d2 100644
--- a/target/travis.rb
+++ b/target/travis.rb
@@ -1,5 +1,21 @@
+MRuby::Build.new('debug') do |conf|
+ toolchain :gcc
+ yacc.command = ENV['YACC'] || 'bison'
+ enable_debug
+
+ # include all core GEMs
+ conf.gembox 'full-core'
+ conf.cc.flags += %w(-Werror=declaration-after-statement)
+ conf.compilers.each do |c|
+ c.defines += %w(MRB_GC_STRESS MRB_GC_FIXED_ARENA MRB_METHOD_CACHE)
+ end
+
+ build_mrbc_exec
+end
+
MRuby::Build.new('full-debug') do |conf|
toolchain :gcc
+ yacc.command = ENV['YACC'] || 'bison'
enable_debug
# include all core GEMs
@@ -12,6 +28,7 @@ end
MRuby::Build.new do |conf|
toolchain :gcc
+ yacc.command = ENV['YACC'] || 'bison'
# include all core GEMs
conf.gembox 'full-core'
@@ -25,6 +42,7 @@ end
MRuby::Build.new('cxx_abi') do |conf|
toolchain :gcc
+ yacc.command = ENV['YACC'] || 'bison'
conf.gembox 'full-core'
conf.cc.flags += %w(-fpermissive)