Compare commits
139
Commits
v2.0.1
...
wip-precompile
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86fcebbda7 | ||
|
|
67c135f610 | ||
|
|
94a86e3433 | ||
|
|
fc18c9f123 | ||
|
|
1d020d1aef | ||
|
|
19c5c8cfba | ||
|
|
4fc7ab6b25 | ||
|
|
161da80ffe | ||
|
|
8d9f19cb34 | ||
|
|
18a2a075c1 | ||
|
|
1a280a8994 | ||
|
|
a19c2e908e | ||
|
|
5223dfe211 | ||
|
|
d0c1b01598 | ||
|
|
57db93c59b | ||
|
|
ba71e8d5e3 | ||
|
|
6e7139abb1 | ||
|
|
896a3e270f | ||
|
|
3ee0015cef | ||
|
|
0315729f69 | ||
|
|
8c865e668b | ||
|
|
150960246b | ||
|
|
c2277bc0a1 | ||
|
|
4baf26e492 | ||
|
|
6044b64695 | ||
|
|
415fa424d1 | ||
|
|
f8c21a9bcc | ||
|
|
6a8647a933 | ||
|
|
3867133e89 | ||
|
|
a7b962c11a | ||
|
|
b490daa480 | ||
|
|
ed7408367f | ||
|
|
d4ec07dd7a | ||
|
|
33b606ccb1 | ||
|
|
c48526fd97 | ||
|
|
419e6ed313 | ||
|
|
132d22e886 | ||
|
|
8f0f320a07 | ||
|
|
12f6936084 | ||
|
|
866b40d872 | ||
|
|
f06d37c8b9 | ||
|
|
21f8e2435e | ||
|
|
97c4f7c757 | ||
|
|
b3df37e9ea | ||
|
|
1bf1c30242 | ||
|
|
b932380b3b | ||
|
|
e3ea429253 | ||
|
|
dca4c49770 | ||
|
|
b068fe7574 | ||
|
|
ecd91e1171 | ||
|
|
f36b71af3f | ||
|
|
90c3867cae | ||
|
|
20b5020284 | ||
|
|
cb540741a4 | ||
|
|
bc17a9b38f | ||
|
|
cec1331054 | ||
|
|
bb4657e465 | ||
|
|
29ca9b3f13 | ||
|
|
5ab982b84c | ||
|
|
e6e860e3c1 | ||
|
|
3cfffed7ec | ||
|
|
b2d47cd439 | ||
|
|
6a10d68fac | ||
|
|
88a8f2395d | ||
|
|
b82d6f2e62 | ||
|
|
150943f23f | ||
|
|
59f1a89f4f | ||
|
|
ea66501311 | ||
|
|
e9e3c6711f | ||
|
|
8269a98d01 | ||
|
|
19dee2b2a5 | ||
|
|
5b6353395d | ||
|
|
7e5c6e6b12 | ||
|
|
44f61da571 | ||
|
|
5c28e557bd | ||
|
|
ef7e9259cb | ||
|
|
6d5f44d4e5 | ||
|
|
8b2387f7a3 | ||
|
|
7b746db64e | ||
|
|
3aca248e9d | ||
|
|
3914dd896c | ||
|
|
df120af953 | ||
|
|
b745ae1153 | ||
|
|
693f8cec64 | ||
|
|
e12acccd33 | ||
|
|
bd9cf55b85 | ||
|
|
f5ab51c477 | ||
|
|
b0f2bbb7d5 | ||
|
|
c1dcfa297f | ||
|
|
034dbcd9a6 | ||
|
|
b5d5fe7a7b | ||
|
|
610b8f1266 | ||
|
|
a316c4f922 | ||
|
|
97dbaeb82d | ||
|
|
a2f72c6b87 | ||
|
|
7055cad73c | ||
|
|
4548f4e3c9 | ||
|
|
19dbab3426 | ||
|
|
69f5bea2b2 | ||
|
|
2ee9dda49d | ||
|
|
f011b23499 | ||
|
|
80d52f25b8 | ||
|
|
0face546e3 | ||
|
|
ca747232cd | ||
|
|
a7b46093e9 | ||
|
|
09892eed63 | ||
|
|
117df43f64 | ||
|
|
acc12822b6 | ||
|
|
8c7b43f60c | ||
|
|
7c8becc3f9 | ||
|
|
d1a35501ef | ||
|
|
28a245f0ab | ||
|
|
87a6d9f04f | ||
|
|
556c821cc6 | ||
|
|
441fc9bc65 | ||
|
|
1861874f5c | ||
|
|
6d51c5cbde | ||
|
|
73af83803a | ||
|
|
353f4f45bc | ||
|
|
5bac91f92f | ||
|
|
bbe9563ceb | ||
|
|
5ec74604c6 | ||
|
|
8e06efe61e | ||
|
|
0756874ddb | ||
|
|
dded5e2648 | ||
|
|
fbe60f6ba2 | ||
|
|
8dd9799666 | ||
|
|
f2c755c8bb | ||
|
|
01ca86de8b | ||
|
|
943fabd0d1 | ||
|
|
d08e2f6b5c | ||
|
|
90365dd197 | ||
|
|
8d05516c40 | ||
|
|
db49d86866 | ||
|
|
e667455c32 | ||
|
|
e62332aba6 | ||
|
|
397639849d | ||
|
|
96d5caf2e5 | ||
|
|
f4b10a30af |
No files matched your search
@@ -0,0 +1,38 @@
|
||||
name: Run RScons Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
ruby-version: ['2.7', '3.0', '3.4']
|
||||
|
||||
steps:
|
||||
- name: Install dependencies (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: sudo apt-get update && sudo apt-get install -y gcc gdc ldc clang flex bison
|
||||
|
||||
- name: Install dependencies (macOS)
|
||||
if: runner.os == 'macOS'
|
||||
run: brew install gcc ldc flex bison
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby-version }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: bundle install
|
||||
|
||||
- name: Run tests
|
||||
run: rake all
|
||||
+115
@@ -1,3 +1,118 @@
|
||||
## v3.3.0
|
||||
|
||||
### New Features
|
||||
|
||||
- Add support for Ruby 3.4.
|
||||
- Fix up some macOS test cases.
|
||||
- #177 - Remove dependency on base64
|
||||
- #175 - Add support for building object files from LLVM assembly sources
|
||||
|
||||
## v3.2.0
|
||||
|
||||
### New Features
|
||||
|
||||
- #171 - Place object files next to source files for source files in build directory
|
||||
- #170 - Use top-level build directory as environment build directory for unnamed environments
|
||||
- #167 - Add upgrading instructions
|
||||
- #166 - Replace CFile builder with Yacc and Lex builders
|
||||
|
||||
### Fixes
|
||||
|
||||
- #172 - Fix configuration checks performed with ldc2 compiler
|
||||
- #169 - Output a better error when pkg-config is not found
|
||||
- #168 - Cannot output binary to an environment's build root with the same name as the top-level source directory
|
||||
- #164 - Improve DSL method documentation
|
||||
|
||||
## v3.1.0
|
||||
|
||||
### New Features
|
||||
|
||||
- #162 - Improve configuration error messages
|
||||
- #163 - Ruby 3.2 compatibility
|
||||
|
||||
### Fixes
|
||||
|
||||
- #161 - builder registered during build hooks should increase build step count
|
||||
|
||||
## v3.0.2
|
||||
|
||||
### Fixes
|
||||
|
||||
- #159 - Compiler check configure methods should respect :use flag
|
||||
- #160 - Configure parameters should not be stored as unscoped construction variables
|
||||
|
||||
## v3.0.1
|
||||
|
||||
### Fixes
|
||||
|
||||
- #156 - Avoid running configure operation twice
|
||||
- #157 - Load configure task arguments before early configure operations
|
||||
- #158 - Do not configure for clean tasks when not yet configured
|
||||
|
||||
## v3.0.0
|
||||
|
||||
- #136 - Move rsconscache into build directory
|
||||
- #140 - Support naming environments
|
||||
- #143 - Add Size builder
|
||||
- #142 - Add 'sh' script DSL method
|
||||
- #144 - Add FileUtils class methods to script DSL
|
||||
- #145 - Support environment variable to set rscons build directory
|
||||
- #146 - Add ^^/ shortcut to top-level build directory
|
||||
- #139 - Add tasks
|
||||
- #147 - Add task options
|
||||
- #148 - Add license/copyright to distributable script
|
||||
- #150 - Add env.expand() shortcut method to expand paths and construction variables
|
||||
- #152 - Add download script method
|
||||
- #153 - Allow passing spawn options to sh
|
||||
- #154 - Record build directory absolute path
|
||||
- #149 - Add shortcut method for creating environments
|
||||
- #131 - Only configure if necessary
|
||||
- #151 - Store configure task parameters in configuration cache data
|
||||
- #137 - Add variants
|
||||
- #155 - Add build_dir script method
|
||||
|
||||
## v2.3.0
|
||||
|
||||
### New Features
|
||||
|
||||
- #125 - Support subsidiary Rsconscript files
|
||||
- #126 - Add PATH manipulation methods
|
||||
|
||||
### Fixes
|
||||
|
||||
- #121 - env.depends() does not work with build-root-relative "^/" paths
|
||||
- #130 - Document -f command line option
|
||||
- #133 - Clarify failed command error message indicating to run -F
|
||||
- #134 - Document CMD_STDOUT variable for Command builder
|
||||
- #135 - Write dependency file to build directory when user invokes Object builder directly
|
||||
- #141 - Document phony targets
|
||||
|
||||
## v2.2.0
|
||||
|
||||
### New Features
|
||||
|
||||
- #120 - improve support for MSYS2
|
||||
- #119 - add failure messages for failed configuration checks
|
||||
- #118 - compiler checks should support cross-compilers and freestanding compilers
|
||||
|
||||
## v2.1.0
|
||||
|
||||
### New Features
|
||||
|
||||
- #117 - ruby 2.7 compatibility
|
||||
|
||||
## v2.0.2
|
||||
|
||||
### Fixes
|
||||
|
||||
- #113 - distinguish object files built from multiple sources with the same base name but different extensions
|
||||
|
||||
## v2.0.1
|
||||
|
||||
### Fixes
|
||||
|
||||
- #112 - Install builder cannot replace a currently executing binary on Linux
|
||||
|
||||
## v2.0.0
|
||||
|
||||
- convert rscons from a Ruby gem to a standalone script
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Developing
|
||||
|
||||
# Specs
|
||||
|
||||
To run the rscons specs, the following commands must be available:
|
||||
|
||||
* gcc
|
||||
* clang
|
||||
* g++
|
||||
* clang++
|
||||
* gdc
|
||||
* ldc2
|
||||
* flex
|
||||
* bison
|
||||
@@ -1,10 +1,16 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem "json"
|
||||
gem "base64"
|
||||
gem "rspec"
|
||||
gem "rake"
|
||||
gem "simplecov"
|
||||
gem "yard"
|
||||
gem "rdoc"
|
||||
gem "redcarpet"
|
||||
gem "syntax"
|
||||
gem "simplecov", "~> 0.15.0"
|
||||
gem "openssl"
|
||||
if RbConfig::CONFIG["host"]["msys"]
|
||||
gem "json", "2.1.0"
|
||||
else
|
||||
gem "json"
|
||||
gem "yard"
|
||||
gem "rdoc"
|
||||
gem "redcarpet"
|
||||
gem "syntax"
|
||||
end
|
||||
+35
-21
@@ -1,46 +1,60 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
diff-lcs (1.3)
|
||||
docile (1.3.2)
|
||||
json (2.2.0)
|
||||
rake (12.3.2)
|
||||
rdoc (6.1.1)
|
||||
redcarpet (3.4.0)
|
||||
rspec (3.8.0)
|
||||
rspec-core (~> 3.8.0)
|
||||
rspec-expectations (~> 3.8.0)
|
||||
rspec-mocks (~> 3.8.0)
|
||||
rspec-core (3.8.2)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-expectations (3.8.4)
|
||||
base64 (0.3.0)
|
||||
date (3.5.1)
|
||||
diff-lcs (1.6.2)
|
||||
docile (1.1.5)
|
||||
erb (6.0.1)
|
||||
json (2.18.0)
|
||||
openssl (4.0.0)
|
||||
psych (5.3.1)
|
||||
date
|
||||
stringio
|
||||
rake (13.3.1)
|
||||
rdoc (7.1.0)
|
||||
erb
|
||||
psych (>= 4.0.0)
|
||||
tsort
|
||||
redcarpet (3.6.1)
|
||||
rspec (3.13.2)
|
||||
rspec-core (~> 3.13.0)
|
||||
rspec-expectations (~> 3.13.0)
|
||||
rspec-mocks (~> 3.13.0)
|
||||
rspec-core (3.13.6)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-expectations (3.13.5)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-mocks (3.8.1)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-mocks (3.13.7)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-support (3.8.2)
|
||||
simplecov (0.15.0)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-support (3.13.6)
|
||||
simplecov (0.15.1)
|
||||
docile (~> 1.1.0)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
simplecov-html (0.10.2)
|
||||
stringio (3.2.0)
|
||||
syntax (1.2.2)
|
||||
yard (0.9.20)
|
||||
tsort (0.2.0)
|
||||
yard (0.9.38)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x86-mingw32
|
||||
|
||||
DEPENDENCIES
|
||||
base64
|
||||
json
|
||||
openssl
|
||||
rake
|
||||
rdoc
|
||||
redcarpet
|
||||
rspec
|
||||
simplecov
|
||||
simplecov (~> 0.15.0)
|
||||
syntax
|
||||
yard
|
||||
|
||||
BUNDLED WITH
|
||||
1.17.3
|
||||
2.6.2
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2013-2019 Josh Holtrop
|
||||
Copyright (c) 2013-2025 Josh Holtrop
|
||||
|
||||
MIT License
|
||||
|
||||
|
||||
@@ -4,7 +4,39 @@
|
||||
|
||||
Rscons (https://github.com/holtrop/rscons) is an open-source build system
|
||||
for developers.
|
||||
It supports the following features:
|
||||
|
||||
Rscons is written in Ruby, and is inspired by [SCons](https://scons.org/) and [waf](https://waf.io/).
|
||||
* multi-threaded job execution
|
||||
* auto-configuration
|
||||
* built-in builders for several common operations
|
||||
* out-of-the-box support for Assembly, C, C++, D, and LLVM
|
||||
* extensibility for other languages or custom builders
|
||||
* compatible with Windows, Linux, OS X, and FreeBSD
|
||||
* colorized output with build progress
|
||||
* build hooks
|
||||
* user-defined tasks with dependencies and custom parameters
|
||||
* build variants
|
||||
|
||||
At its core, Rscons is mainly an engine to:
|
||||
|
||||
* determine the proper order to perform build steps,
|
||||
* determine whether each build target is up to date or in need of rebuild, and
|
||||
* schedule those build steps across multiple threads as efficiently as possible.
|
||||
|
||||
Along the way, Rscons provides a concise syntax for specifying common types of
|
||||
build steps, but also provides an extensible framework for performing
|
||||
custom build operations as well.
|
||||
|
||||
Rscons takes inspiration from:
|
||||
|
||||
* [SCons](https://scons.org/)
|
||||
* [waf](https://waf.io/)
|
||||
* [rake](https://github.com/ruby/rake)
|
||||
* [CMake](https://cmake.org/)
|
||||
* [Autoconf](https://www.gnu.org/software/autoconf/)
|
||||
|
||||
Rscons is written in Ruby.
|
||||
The only requirement to run Rscons is that the system has a Ruby interpreter
|
||||
installed.
|
||||
|
||||
See [https://holtrop.github.io/rscons/index.html](https://holtrop.github.io/rscons/index.html) for User Guide and Installation instructions.
|
||||
+21
-12
@@ -6,7 +6,6 @@ rescue Bundler::BundlerError => e
|
||||
end
|
||||
|
||||
require "rspec/core/rake_task"
|
||||
require "yard"
|
||||
require "rake/clean"
|
||||
require "fileutils"
|
||||
|
||||
@@ -18,30 +17,30 @@ task :build_dist do
|
||||
end
|
||||
|
||||
RSpec::Core::RakeTask.new(:spec, :example_string) do |task, args|
|
||||
ENV["specs"] = "1"
|
||||
if args.example_string
|
||||
ENV["partial_specs"] = "1"
|
||||
task.rspec_opts = %W[-e "#{args.example_string}" -f documentation]
|
||||
end
|
||||
end
|
||||
task :spec => :build_dist
|
||||
task :spec do
|
||||
ENV.delete("specs")
|
||||
end
|
||||
|
||||
# dspec task is useful to test the distributable release script, but is not
|
||||
# useful for coverage information.
|
||||
desc "Dist Specs"
|
||||
task :dspec, [:example_string] => :build_dist do |task, args|
|
||||
FileUtils.rm_rf("test")
|
||||
FileUtils.mkdir_p("test")
|
||||
FileUtils.cp("dist/rscons", "test/rscons.rb")
|
||||
ENV["dist_specs"] = "1"
|
||||
Rake::Task["spec"].invoke(args.example_string)
|
||||
ENV.delete("dist_specs")
|
||||
ENV["rscons_dist_specs"] = "1"
|
||||
Rake::Task["spec"].execute(args)
|
||||
ENV.delete("rscons_dist_specs")
|
||||
FileUtils.rm_f(Dir.glob(".rscons-*"))
|
||||
end
|
||||
|
||||
YARD::Rake::YardocTask.new do |yard|
|
||||
yard.files = ['lib/**/*.rb']
|
||||
yard.options = ["-ogen/yard"]
|
||||
end
|
||||
|
||||
task :gen_large_project, [:size] => :build_dist do |task, args|
|
||||
size = (args.size || 10000).to_i
|
||||
FileUtils.rm_rf("large_project")
|
||||
@@ -78,7 +77,7 @@ task :gen_large_project, [:size] => :build_dist do |task, args|
|
||||
end
|
||||
File.open("large_project/Rsconscript", "w") do |fh|
|
||||
fh.puts <<EOF
|
||||
build do
|
||||
default do
|
||||
Environment.new do |env|
|
||||
env.Program("project", glob("src/*.c"))
|
||||
end
|
||||
@@ -88,8 +87,17 @@ EOF
|
||||
FileUtils.cp("dist/rscons", "large_project")
|
||||
end
|
||||
|
||||
task :user_guide do
|
||||
system("ruby", "-Ilib", "rb/gen_user_guide.rb")
|
||||
unless RbConfig::CONFIG["host"]["msys"]
|
||||
require "yard"
|
||||
YARD::Rake::YardocTask.new do |yard|
|
||||
yard.files = ['lib/**/*.rb']
|
||||
yard.options = ["-ogen/yard"]
|
||||
end
|
||||
|
||||
desc "Build user guide"
|
||||
task :user_guide do
|
||||
system("ruby", "-Ilib", "rb/gen_user_guide.rb")
|
||||
end
|
||||
end
|
||||
|
||||
task :default => :spec
|
||||
@@ -97,6 +105,7 @@ task :default => :spec
|
||||
task :all => [
|
||||
:build_dist,
|
||||
:spec,
|
||||
:dspec,
|
||||
:yard,
|
||||
:user_guide,
|
||||
]
|
||||
@@ -0,0 +1,10 @@
|
||||
# Upgrading
|
||||
|
||||
## v3.2.0
|
||||
|
||||
- Replace any calls to `env.CFile()` builder with `env.Lex()` or `env.Yacc()` as required.
|
||||
|
||||
## v3.0.0
|
||||
|
||||
- Move `build` block contents outside of `build` block and remove `build` call.
|
||||
- Replace `Environment.new()` calls with `env()`.
|
||||
+1
-1
@@ -3,5 +3,5 @@
|
||||
require "rscons/cli"
|
||||
|
||||
if __FILE__ == $0
|
||||
Rscons::Cli.run(ARGV)
|
||||
Rscons::Cli.new.run(ARGV)
|
||||
end
|
||||
@@ -1,6 +0,0 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.CFile("lexer.c", "lexer.l")
|
||||
env.CFile("parser.c", "parser.y")
|
||||
end
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.CFile("file.c", "foo.bar")
|
||||
end
|
||||
end
|
||||
@@ -1,12 +1,10 @@
|
||||
build do
|
||||
debug = Environment.new(echo: :command) do |env|
|
||||
env['CFLAGS'] = '-O2'
|
||||
env['CPPFLAGS'] = '-DSTRING="Debug Version"'
|
||||
env.Program('program-debug.exe', Dir['src/*.c'])
|
||||
end
|
||||
|
||||
release = debug.clone do |env|
|
||||
env["CPPFLAGS"] = '-DSTRING="Release Version"'
|
||||
env.Program('program-release.exe', Dir['src/*.c'])
|
||||
end
|
||||
debug = env("dbg", echo: :command) do |env|
|
||||
env['CFLAGS'] = '-O2'
|
||||
env['CPPFLAGS'] = '-DSTRING="Debug Version"'
|
||||
env.Program('program-debug.exe', Dir['src/*.c'])
|
||||
end
|
||||
|
||||
release = debug.clone("rls") do |env|
|
||||
env["CPPFLAGS"] = '-DSTRING="Release Version"'
|
||||
env.Program('program-release.exe', Dir['src/*.c'])
|
||||
end
|
||||
@@ -1,16 +1,14 @@
|
||||
build do
|
||||
env1 = Environment.new(echo: :command) do |env|
|
||||
env['CFLAGS'] = '-O2'
|
||||
env.add_build_hook do |builder|
|
||||
builder.vars['CPPFLAGS'] = '-DSTRING="Hello"'
|
||||
end
|
||||
env.add_post_build_hook do |builder|
|
||||
$stdout.puts "post #{builder.target}"
|
||||
end
|
||||
env.Program('program.exe', Dir['src/*.c'])
|
||||
env1 = env("e1", echo: :command) do |env|
|
||||
env['CFLAGS'] = '-O2'
|
||||
env.add_build_hook do |builder|
|
||||
builder.vars['CPPFLAGS'] = '-DSTRING="Hello"'
|
||||
end
|
||||
|
||||
env2 = env1.clone do |env|
|
||||
env.Program('program2.exe', Dir['src/*.c'])
|
||||
env.add_post_build_hook do |builder|
|
||||
$stdout.puts "post #{builder.target}"
|
||||
end
|
||||
env.Program('program.exe', Dir['src/*.c'])
|
||||
end
|
||||
|
||||
env2 = env1.clone("e2") do |env|
|
||||
env.Program('program2.exe', Dir['src/*.c'])
|
||||
end
|
||||
@@ -1,3 +1,4 @@
|
||||
configure do
|
||||
check_c_compiler "nope.nope"
|
||||
end
|
||||
default
|
||||
@@ -1 +1,3 @@
|
||||
autoconf false
|
||||
env do |env|
|
||||
end
|
||||
@@ -3,8 +3,6 @@ configure do
|
||||
check_c_header "stdio.h"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Program("simple.exe", "simple.c")
|
||||
end
|
||||
env do |env|
|
||||
env.Program("simple.exe", "simple.c")
|
||||
end
|
||||
@@ -1,3 +1,4 @@
|
||||
configure do
|
||||
check_c_compiler
|
||||
end
|
||||
default
|
||||
@@ -0,0 +1,6 @@
|
||||
configure do
|
||||
check_c_compiler "clang"
|
||||
end
|
||||
env do |env|
|
||||
env.Program("simple.exe", "simple.c")
|
||||
end
|
||||
@@ -0,0 +1,12 @@
|
||||
configure do
|
||||
check_c_compiler "clang", use: "clang"
|
||||
check_c_compiler
|
||||
end
|
||||
|
||||
env "t1" do |env|
|
||||
env.Program("test_gcc.exe", "simple.c")
|
||||
end
|
||||
|
||||
env "t2", use: "clang" do |env|
|
||||
env.Program("test_clang.exe", "simple.c")
|
||||
end
|
||||
@@ -3,8 +3,6 @@ configure do
|
||||
check_c_header "frobulous.h", check_cpppath: ["./usr2"]
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Object("test.o", "test.c")
|
||||
end
|
||||
env do |env|
|
||||
env.Object("test.o", "test.c")
|
||||
end
|
||||
@@ -2,8 +2,6 @@ configure do
|
||||
check_c_header "not___found.h", set_define: "HAVE_NOT___FOUND_H"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Object("simple.o", "simple.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Object("simple.o", "simple.c")
|
||||
end
|
||||
@@ -2,8 +2,6 @@ configure do
|
||||
check_c_header "string.h", set_define: "HAVE_STRING_H"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Object("simple.o", "simple.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Object("simple.o", "simple.c")
|
||||
end
|
||||
@@ -2,8 +2,6 @@ configure do
|
||||
check_cfg program: "my-config"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Program("myconfigtest", "simple.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Program("myconfigtest", "simple.c")
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
ENV["PATH"] = ""
|
||||
|
||||
configure do
|
||||
check_cfg package: "mypackage"
|
||||
end
|
||||
@@ -2,8 +2,6 @@ configure do
|
||||
check_cfg package: "mypackage"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Program("myconfigtest", "simple.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Program("myconfigtest", "simple.c")
|
||||
end
|
||||
@@ -2,14 +2,12 @@ configure do
|
||||
check_cfg package: "mypackage", use: "myp"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Copy("myconfigtest1.c", "simple.c")
|
||||
env.Program("myconfigtest1.exe", "myconfigtest1.c")
|
||||
end
|
||||
|
||||
Environment.new(echo: :command, use: "myp") do |env|
|
||||
env.Copy("myconfigtest2.c", "simple.c")
|
||||
env.Program("myconfigtest2.exe", "myconfigtest2.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Copy("myconfigtest1.c", "simple.c")
|
||||
env.Program("myconfigtest1.exe", "myconfigtest1.c")
|
||||
end
|
||||
|
||||
env(echo: :command, use: "myp") do |env|
|
||||
env.Copy("myconfigtest2.c", "simple.c")
|
||||
env.Program("myconfigtest2.exe", "myconfigtest2.c")
|
||||
end
|
||||
@@ -0,0 +1,12 @@
|
||||
configure do
|
||||
check_cxx_compiler "clang++", use: "clang"
|
||||
check_cxx_compiler
|
||||
end
|
||||
|
||||
env "t1" do |env|
|
||||
env.Program("test_gcc.exe", "simple.cc")
|
||||
end
|
||||
|
||||
env "t2", use: "clang" do |env|
|
||||
env.Program("test_clang.exe", "simple.cc")
|
||||
end
|
||||
@@ -3,8 +3,6 @@ configure do
|
||||
check_cxx_header "frobulous.h", check_cpppath: ["./usr2"]
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Object("test.o", "test.cc")
|
||||
end
|
||||
env do |env|
|
||||
env.Object("test.o", "test.cc")
|
||||
end
|
||||
@@ -1,3 +1,3 @@
|
||||
configure do
|
||||
check_d_compiler "gdc", "ldc2"
|
||||
check_d_compiler "gdc", "ldc2", "ldc"
|
||||
end
|
||||
@@ -0,0 +1,12 @@
|
||||
configure do
|
||||
check_d_compiler "ldc2", use: "ldc2"
|
||||
check_d_compiler
|
||||
end
|
||||
|
||||
env "t1" do |env|
|
||||
env.Program("test_gcc.exe", "simple.d")
|
||||
end
|
||||
|
||||
env "t2", use: "ldc2" do |env|
|
||||
env.Program("test_ldc2.exe", "simple.d")
|
||||
end
|
||||
@@ -1,10 +1,9 @@
|
||||
configure do
|
||||
check_d_compiler
|
||||
check_d_import "std.stdio", check_d_import_path: ["./usr1"]
|
||||
check_d_import "frobulous", check_d_import_path: ["./usr2"]
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Object("test.o", "test.d")
|
||||
end
|
||||
env do |env|
|
||||
env.Object("test.o", "test.d")
|
||||
end
|
||||
@@ -1,3 +1,4 @@
|
||||
configure do
|
||||
check_d_compiler
|
||||
check_d_import "std.stdio"
|
||||
end
|
||||
@@ -1,5 +1,3 @@
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Library("usr2/libfrobulous.a", "two.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Library("usr2/libfrobulous.a", "two.c")
|
||||
end
|
||||
@@ -3,8 +3,6 @@ configure do
|
||||
check_lib "frobulous", check_libpath: ["./usr2"]
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Program("simple.exe", "simple.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Program("simple.exe", "simple.c")
|
||||
end
|
||||
@@ -2,8 +2,6 @@ configure do
|
||||
check_lib "m"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Program("simple.exe", "simple.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Program("simple.exe", "simple.c")
|
||||
end
|
||||
@@ -2,14 +2,12 @@ configure do
|
||||
check_lib "m", use: :m
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Copy("test1.c", "simple.c")
|
||||
env.Program("test2.exe", "test1.c")
|
||||
end
|
||||
|
||||
Environment.new(echo: :command, use: %w[m]) do |env|
|
||||
env.Copy("test2.c", "simple.c")
|
||||
env.Program("test2.exe", "test2.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Copy("test1.c", "simple.c")
|
||||
env.Program("test2.exe", "test1.c")
|
||||
end
|
||||
|
||||
env(echo: :command, use: %w[m]) do |env|
|
||||
env.Copy("test2.c", "simple.c")
|
||||
env.Program("test2.exe", "test2.c")
|
||||
end
|
||||
@@ -2,9 +2,7 @@ configure do
|
||||
check_lib "m", use: false
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Copy("test1.c", "simple.c")
|
||||
env.Program("test2.exe", "test1.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Copy("test1.c", "simple.c")
|
||||
env.Program("test2.exe", "test1.c")
|
||||
end
|
||||
@@ -0,0 +1,8 @@
|
||||
configure do
|
||||
check_d_compiler "ldc2"
|
||||
check_lib "z"
|
||||
end
|
||||
|
||||
env(echo: :command) do |env|
|
||||
env.Program("simple.exe", "simple.d")
|
||||
end
|
||||
@@ -0,0 +1,6 @@
|
||||
configure do
|
||||
check_c_compiler
|
||||
end
|
||||
env do |env|
|
||||
puts "Prefix is #{Task["configure"]["prefix"]}"
|
||||
end
|
||||
@@ -23,8 +23,6 @@ configure do
|
||||
end
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
puts env["CPPDEFINES"]
|
||||
end
|
||||
env do |env|
|
||||
puts env["CPPDEFINES"]
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
Environment.new do |env|
|
||||
env.Object("simple.o", "simple.cc")
|
||||
end
|
||||
@@ -3,8 +3,6 @@ configure do
|
||||
check_c_header "stdio.h", set_define: "HAVE_STDIO_H"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Object("simple.o", "simple.c")
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env.Object("simple.o", "simple.c")
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
default do
|
||||
puts "default"
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
configure do
|
||||
check_c_compiler "foo123c", fail: false, on_fail: "Install the foo123 package"
|
||||
check_d_compiler "foo123d", fail: false
|
||||
check_cxx_compiler "foo123cxx", on_fail: lambda {puts "Install the foo123cxx package"}
|
||||
end
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <iostream>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
std::cout << "Hi" << std::endl;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import std.stdio;
|
||||
|
||||
int main()
|
||||
{
|
||||
writeln("Hello");
|
||||
return 0;
|
||||
}
|
||||
@@ -9,10 +9,8 @@ EOF
|
||||
end
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.add_builder(MySource)
|
||||
env.MySource('inc.h', [])
|
||||
env.Program('program.exe', Dir['*.c'])
|
||||
end
|
||||
env do |env|
|
||||
env.add_builder(MySource)
|
||||
env.MySource('inc.h', [])
|
||||
env.Program('program.exe', Dir['*.c'])
|
||||
end
|
||||
@@ -1,12 +1,11 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Command("inc.c",
|
||||
[],
|
||||
"CMD" => %w[ruby gen.rb ${_TARGET}],
|
||||
"CMD_DESC" => "Generating")
|
||||
env["build_root"] = env.build_root
|
||||
env["inc_c"] = "inc.c"
|
||||
env.build_after("${build_root}/program.o", "${inc_c}")
|
||||
env.Program("program.exe", ["program.c", "inc.c"])
|
||||
end
|
||||
env do |env|
|
||||
env.Command("inc.c",
|
||||
[],
|
||||
"CMD" => %w[ruby gen.rb ${_TARGET}],
|
||||
"CMD_DESC" => "Generating")
|
||||
env["build_root"] = env.build_root
|
||||
env["inc_c"] = "inc.c"
|
||||
env.Object("program.o", "program.c")
|
||||
env.build_after("program.o", "${inc_c}")
|
||||
env.Program("program.exe", ["program.o", "inc.c"])
|
||||
end
|
||||
@@ -9,12 +9,10 @@ EOF
|
||||
end
|
||||
end
|
||||
|
||||
build do
|
||||
env = Environment.new do |env|
|
||||
env["hdr"] = "inc.h"
|
||||
env["src"] = "program.c"
|
||||
env.add_builder(MySource)
|
||||
env.MySource('${hdr}')
|
||||
env.Program('program.exe', "${src}")
|
||||
end
|
||||
env = env do |env|
|
||||
env["hdr"] = "inc.h"
|
||||
env["src"] = "program.c"
|
||||
env.add_builder(MySource)
|
||||
env.MySource('${hdr}')
|
||||
env.Program('program.exe', "${src}")
|
||||
end
|
||||
@@ -9,22 +9,20 @@ EOF
|
||||
end
|
||||
end
|
||||
|
||||
build do
|
||||
e1 = Environment.new do |env|
|
||||
env.add_builder(MySource)
|
||||
env["one"] = "5"
|
||||
env[:cfg] = {val: "9"}
|
||||
env["two"] = lambda do |args|
|
||||
args[:env][:cfg][:val]
|
||||
end
|
||||
env["the_value"] = lambda do |args|
|
||||
"${one}${two}78"
|
||||
end
|
||||
e1 = env do |env|
|
||||
env.add_builder(MySource)
|
||||
env["one"] = "5"
|
||||
env[:cfg] = {val: "9"}
|
||||
env["two"] = lambda do |args|
|
||||
args[:env][:cfg][:val]
|
||||
end
|
||||
|
||||
e1.clone do |env|
|
||||
env[:cfg][:val] = "6"
|
||||
env.MySource('inc.h', [])
|
||||
env.Program('program.exe', Dir['*.c'])
|
||||
env["the_value"] = lambda do |args|
|
||||
"${one}${two}78"
|
||||
end
|
||||
end
|
||||
|
||||
e1.clone do |env|
|
||||
env[:cfg][:val] = "6"
|
||||
env.MySource('inc.h', [])
|
||||
env.Program('program.exe', Dir['*.c'])
|
||||
end
|
||||
@@ -1,8 +1,6 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.add_builder(:MyBuilder) do |options|
|
||||
"hi"
|
||||
end
|
||||
env.MyBuilder("foo")
|
||||
env do |env|
|
||||
env.add_builder(:MyBuilder) do |options|
|
||||
"hi"
|
||||
end
|
||||
env.MyBuilder("foo")
|
||||
end
|
||||
@@ -1,8 +1,6 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.add_builder(:MyBuilder) do |options|
|
||||
wait_for(1)
|
||||
end
|
||||
env.MyBuilder("foo")
|
||||
env do |env|
|
||||
env.add_builder(:MyBuilder) do |options|
|
||||
wait_for(1)
|
||||
end
|
||||
env.MyBuilder("foo")
|
||||
end
|
||||
@@ -12,10 +12,8 @@ class CHGen < Rscons::Builder
|
||||
end
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.add_builder(CHGen)
|
||||
env.CHGen("inc.c", ["program.c"])
|
||||
env.Program("program.exe", %w[program.c inc.c])
|
||||
end
|
||||
env do |env|
|
||||
env.add_builder(CHGen)
|
||||
env.CHGen("inc.c", ["program.c"])
|
||||
env.Program("program.exe", %w[program.c inc.c])
|
||||
end
|
||||
@@ -1,16 +1,15 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["build_root"] = env.build_root
|
||||
env["inc_h"] = "inc.h"
|
||||
env do |env|
|
||||
env["build_root"] = env.build_root
|
||||
env["inc_h"] = "inc.h"
|
||||
|
||||
env.Copy("copy_inc.h", "${inc_h}")
|
||||
env.depends("${build_root}/program.o", "${inc_h}")
|
||||
env.Program("program.exe", ["program.c", "inc.c"])
|
||||
env.Copy("copy_inc.h", "${inc_h}")
|
||||
env.depends("program.o", "${inc_h}")
|
||||
env.Object("program.o", "program.c")
|
||||
env.Program("program.exe", ["program.o", "inc.c"])
|
||||
|
||||
inc_c = env.Command("inc.c",
|
||||
[],
|
||||
"CMD" => %w[ruby gen.rb ${_TARGET}],
|
||||
"CMD_DESC" => "Generating")
|
||||
inc_c.produces("inc.h")
|
||||
end
|
||||
inc_c = env.Command("inc.c",
|
||||
[],
|
||||
"CMD" => %w[ruby gen.rb ${_TARGET}],
|
||||
"CMD_DESC" => "Generating")
|
||||
inc_c.produces("inc.h")
|
||||
end
|
||||
@@ -1,16 +1,15 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["build_root"] = env.build_root
|
||||
env["inc_h"] = "inc.h"
|
||||
env do |env|
|
||||
env["build_root"] = env.build_root
|
||||
env["inc_h"] = "inc.h"
|
||||
|
||||
env.Copy("copy_inc.h", "${inc_h}")
|
||||
env.depends("${build_root}/program.o", "${inc_h}")
|
||||
env.Program("program.exe", ["program.c", "inc.c"])
|
||||
env.Copy("copy_inc.h", "${inc_h}")
|
||||
env.depends("program.o", "${inc_h}")
|
||||
env.Object("program.o", "program.c")
|
||||
env.Program("program.exe", ["program.o", "inc.c"])
|
||||
|
||||
env.Command("inc.c",
|
||||
[],
|
||||
"CMD" => %w[ruby gen.rb ${_TARGET}],
|
||||
"CMD_DESC" => "Generating")
|
||||
env.produces("inc.c", "inc.h")
|
||||
end
|
||||
env.Command("inc.c",
|
||||
[],
|
||||
"CMD" => %w[ruby gen.rb ${_TARGET}],
|
||||
"CMD_DESC" => "Generating")
|
||||
env.produces("inc.c", "inc.h")
|
||||
end
|
||||
@@ -13,9 +13,7 @@ class MyBuilder < Rscons::Builder
|
||||
end
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.add_builder(MyBuilder)
|
||||
env.MyBuilder("foo")
|
||||
end
|
||||
env do |env|
|
||||
env.add_builder(MyBuilder)
|
||||
env.MyBuilder("foo")
|
||||
end
|
||||
@@ -2,8 +2,7 @@ configure do
|
||||
check_d_compiler "gdc"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Program("hello-d.exe", glob("*.d"))
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env["D_IMPORT_PATH"] << "src"
|
||||
env.Program("hello-d.exe", glob("src/*.d"))
|
||||
end
|
||||
@@ -2,8 +2,7 @@ configure do
|
||||
check_d_compiler "ldc2"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Program("hello-d.exe", glob("*.d"))
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env["D_IMPORT_PATH"] << "src"
|
||||
env.Program("hello-d.exe", glob("src/*.d"))
|
||||
end
|
||||
@@ -1,7 +1,6 @@
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Object("main.o", "main.d")
|
||||
env.Object("mod.o", "mod.d")
|
||||
env.Program("hello-d.exe", ["main.o", "mod.o"])
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env["LD_LIBRARY_PATH"] << "src"
|
||||
env.Object("main.o", "src/main.d")
|
||||
env.Object("mod.o", "src/mod.d")
|
||||
env.Program("hello-d.exe", ["main.o", "mod.o"])
|
||||
end
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,5 +1,3 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Program("test.exe", glob("*.c"), direct: true)
|
||||
end
|
||||
env do |env|
|
||||
env.Program("test.exe", glob("*.c"), direct: true)
|
||||
end
|
||||
@@ -1,7 +1,5 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
lib = env.SharedLibrary("mylib", ["two.c", "three.c"], direct: true)
|
||||
program = env.Program("test.exe", "main.c", "LIBS" => ["mylib"], "LIBPATH" => ["."])
|
||||
env.depends(program, lib)
|
||||
end
|
||||
env do |env|
|
||||
lib = env.SharedLibrary("mylib", ["two.c", "three.c"], direct: true)
|
||||
program = env.Program("test.exe", "main.c", "LIBS" => ["mylib"], "LIBPATH" => ["."])
|
||||
env.depends(program, lib)
|
||||
end
|
||||
@@ -1,5 +1,3 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Program('header.exe', Dir['*.c'])
|
||||
end
|
||||
env do |env|
|
||||
env.Program('header.exe', Dir['*.c'])
|
||||
end
|
||||
@@ -1,6 +0,0 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Program("program.exe", "program.c")
|
||||
env.Install("install/program.exe", "program.exe")
|
||||
end
|
||||
end
|
||||
@@ -1,8 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
sleep(2);
|
||||
return 0;
|
||||
}
|
||||
@@ -1,17 +1,16 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
require 'json'
|
||||
require 'yaml'
|
||||
env.add_builder(:JsonToYaml) do |params|
|
||||
unless @cache.up_to_date?(@target, :JsonToYaml, @sources, @env)
|
||||
@cache.mkdir_p(File.dirname(@target))
|
||||
File.open(@target, 'w') do |f|
|
||||
f.write(YAML.dump(JSON.load(IO.read(@sources.first))))
|
||||
end
|
||||
@cache.register_build(@target, :JsonToYaml, @sources, @env)
|
||||
env do |env|
|
||||
require 'json'
|
||||
require 'yaml'
|
||||
env.add_builder(:JsonToYaml) do |params|
|
||||
unless @cache.up_to_date?(@target, :JsonToYaml, @sources, @env)
|
||||
print_run_message("JsonToYaml #{@target}", nil)
|
||||
@cache.mkdir_p(File.dirname(@target))
|
||||
File.open(@target, 'w') do |f|
|
||||
f.write(YAML.dump(JSON.load(IO.read(@sources.first))))
|
||||
end
|
||||
true
|
||||
@cache.register_build(@target, :JsonToYaml, @sources, @env)
|
||||
end
|
||||
env.JsonToYaml('foo.yml', 'foo.json')
|
||||
true
|
||||
end
|
||||
env.JsonToYaml('foo.yml', 'foo.json')
|
||||
end
|
||||
@@ -0,0 +1,4 @@
|
||||
env do |env|
|
||||
env.Lex("lexer.c", "lexer.l")
|
||||
env.Yacc("parser.c", "parser.y")
|
||||
end
|
||||
File renamed without changes.
File renamed without changes.
@@ -1,6 +1,7 @@
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.Program('library.exe', ['lib.a', 'three.c'])
|
||||
env.Library("lib.a", ['one.c', 'two.c'], 'CPPFLAGS' => ['-Dmake_lib'])
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env["LIBS"] << "mylib"
|
||||
env["LIBPATH"] << "."
|
||||
env.Program("library.exe", "one.c")
|
||||
env.depends("library.exe", "libmylib.a")
|
||||
env.Library("libmylib.a", ["two.c", "three.c"], "CPPFLAGS" => ["-Dmake_lib"])
|
||||
end
|
||||
@@ -1,7 +1,5 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Program("library.exe", ["lib.a", "three.c"])
|
||||
env.Object("two.o", "two.c")
|
||||
env.Library("lib.a", ["one.c", "two.o"], 'CPPFLAGS' => ['-Dmake_lib'])
|
||||
end
|
||||
env do |env|
|
||||
env.Program("library.exe", ["lib.a", "three.c"])
|
||||
env.Object("two.o", "two.c")
|
||||
env.Library("lib.a", ["one.c", "two.o"], 'CPPFLAGS' => ['-Dmake_lib'])
|
||||
end
|
||||
@@ -1,8 +1,11 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef make_lib
|
||||
void two();
|
||||
void three();
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
two();
|
||||
printf("Library\n");
|
||||
three();
|
||||
}
|
||||
#endif
|
||||
@@ -1,6 +1,4 @@
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env["ARCMD"] = %w[ar rcf ${_TARGET} ${_SOURCES}]
|
||||
env.Library("lib.a", glob("*.c"))
|
||||
end
|
||||
env(echo: :command) do |env|
|
||||
env["ARCMD"] = %w[ar rc ${_TARGET} ${_SOURCES}]
|
||||
env.Library("lib.a", glob("*.c"))
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
void three(void)
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
void two(void)
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
env do |env|
|
||||
env["LLVMAS_FLAGS"] += %w[-Wno-override-module]
|
||||
env.Program("llvmtest.exe", %w[main.c one.ll])
|
||||
end
|
||||
@@ -0,0 +1,8 @@
|
||||
configure do
|
||||
check_c_compiler "clang"
|
||||
end
|
||||
|
||||
env do |env|
|
||||
env["LLVMAS_FLAGS"] += %w[-Wno-override-module]
|
||||
env.Program("llvmtest.exe", %w[one.ll two.ll main2.c], direct: true)
|
||||
end
|
||||
@@ -0,0 +1,6 @@
|
||||
extern int one(void);
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
return one();
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
extern int one(void);
|
||||
extern int two(void);
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
one();
|
||||
two();
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
@str = private unnamed_addr constant [12 x i8] c"hello world\00"
|
||||
|
||||
declare i32 @puts(ptr nocapture) nounwind
|
||||
|
||||
define i32 @one()
|
||||
{
|
||||
call i32 @puts(ptr @str)
|
||||
ret i32 0
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
@str = private unnamed_addr constant [12 x i8] c"hello again\00"
|
||||
|
||||
declare i32 @puts(ptr nocapture) nounwind
|
||||
|
||||
define i32 @two()
|
||||
{
|
||||
call i32 @puts(ptr @str)
|
||||
ret i32 0
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
env do |env|
|
||||
env.Program("foo.exe", glob("*.cc", "*.c"))
|
||||
end
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <stdio.h>
|
||||
|
||||
void foo(void)
|
||||
{
|
||||
printf("foo\n");
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#include <iostream>
|
||||
|
||||
extern "C" {
|
||||
void foo(void);
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
foo();
|
||||
std::cout << "main" << std::endl;
|
||||
return 0;
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Preprocess("pp", "foo.h")
|
||||
end
|
||||
env do |env|
|
||||
env.Preprocess("pp", "foo.h")
|
||||
end
|
||||
@@ -1,13 +1,11 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
libmine = env.SharedLibrary("mine", glob("src/lib/*.c"))
|
||||
env.Program("test-shared.exe",
|
||||
glob("src/*.c"),
|
||||
"LIBPATH" => %w[.],
|
||||
"LIBS" => %w[mine])
|
||||
env.build_after("test-shared.exe", libmine)
|
||||
env.Program("test-static.exe",
|
||||
glob("src/**/*.c"))
|
||||
end
|
||||
env do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
libmine = env.SharedLibrary("mine", glob("src/lib/*.c"))
|
||||
env.Program("test-shared.exe",
|
||||
glob("src/*.c"),
|
||||
"LIBPATH" => %w[.],
|
||||
"LIBS" => %w[mine])
|
||||
env.build_after("test-shared.exe", libmine)
|
||||
env.Program("test-static.exe",
|
||||
glob("src/**/*.c"))
|
||||
end
|
||||
@@ -1,8 +1,6 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
File.open("foo.xyz", "wb") do |fh|
|
||||
fh.puts("hi")
|
||||
end
|
||||
env.SharedObject("foo.o", "foo.xyz")
|
||||
env do |env|
|
||||
File.open("foo.xyz", "wb") do |fh|
|
||||
fh.puts("hi")
|
||||
end
|
||||
env.SharedObject("foo.o", "foo.xyz")
|
||||
end
|
||||
@@ -1,7 +1,5 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
env.Object("file.S", "src/lib/one.c", "CFLAGS" => env["CFLAGS"] + ["-S"])
|
||||
libmine = env.SharedLibrary("mine", "file.S")
|
||||
end
|
||||
env do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
env.Object("file.S", "src/lib/one.c", "CFLAGS" => env["CFLAGS"] + ["-S"])
|
||||
libmine = env.SharedLibrary("mine", "file.S")
|
||||
end
|
||||
@@ -1,13 +1,11 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
libmine = env.SharedLibrary("mine", glob("src/lib/*.cc"))
|
||||
env.Program("test-shared.exe",
|
||||
glob("src/*.cc"),
|
||||
"LIBPATH" => %w[.],
|
||||
"LIBS" => %w[mine])
|
||||
env.build_after("test-shared.exe", libmine)
|
||||
env.Program("test-static.exe",
|
||||
glob("src/**/*.cc"))
|
||||
end
|
||||
env do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
libmine = env.SharedLibrary("mine", glob("src/lib/*.cc"))
|
||||
env.Program("test-shared.exe",
|
||||
glob("src/*.cc"),
|
||||
"LIBPATH" => %w[.],
|
||||
"LIBS" => %w[mine])
|
||||
env.build_after("test-shared.exe", libmine)
|
||||
env.Program("test-static.exe",
|
||||
glob("src/**/*.cc"))
|
||||
end
|
||||
@@ -1,11 +1,9 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
libmine = env.SharedLibrary("mine", glob("src/lib/*.d"))
|
||||
env.Program("test-shared.exe",
|
||||
glob("src/*.c"),
|
||||
"LIBPATH" => %w[.],
|
||||
"LIBS" => %w[mine])
|
||||
env.build_after("test-shared.exe", libmine)
|
||||
end
|
||||
env do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
libmine = env.SharedLibrary("mine", glob("src/lib/*.d"))
|
||||
env.Program("test-shared.exe",
|
||||
glob("src/*.c"),
|
||||
"LIBPATH" => %w[.],
|
||||
"LIBS" => %w[mine])
|
||||
env.build_after("test-shared.exe", libmine)
|
||||
end
|
||||
@@ -1,7 +1,5 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
env.SharedObject("one.o", "src/lib/one.c")
|
||||
libmine = env.SharedLibrary("mine", ["one.o", "src/lib/two.c"])
|
||||
end
|
||||
env do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
env.SharedObject("one.o", "src/lib/one.c")
|
||||
libmine = env.SharedLibrary("mine", ["one.o", "src/lib/two.c"])
|
||||
end
|
||||
@@ -1,14 +1,12 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
env["SHLD"] = "gcc"
|
||||
libmine = env.SharedLibrary("mine", glob("src/lib/*.c"))
|
||||
env.Program("test-shared.exe",
|
||||
glob("src/*.c"),
|
||||
"LIBPATH" => %w[.],
|
||||
"LIBS" => %w[mine])
|
||||
env.build_after("test-shared.exe", libmine)
|
||||
env.Program("test-static.exe",
|
||||
glob("src/**/*.c"))
|
||||
end
|
||||
env do |env|
|
||||
env["CPPPATH"] << "src/lib"
|
||||
env["SHLD"] = "gcc"
|
||||
libmine = env.SharedLibrary("mine", glob("src/lib/*.c"))
|
||||
env.Program("test-shared.exe",
|
||||
glob("src/*.c"),
|
||||
"LIBPATH" => %w[.],
|
||||
"LIBS" => %w[mine])
|
||||
env.build_after("test-shared.exe", libmine)
|
||||
env.Program("test-static.exe",
|
||||
glob("src/**/*.c"))
|
||||
end
|
||||
@@ -1,5 +1,3 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Program('simple.exe', Dir['*.c'])
|
||||
end
|
||||
env do |env|
|
||||
env.Program('simple.exe', Dir['*.c'])
|
||||
end
|
||||
@@ -1,15 +1,13 @@
|
||||
build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
tempdir = ENV["TEMP"] || ENV["TMP"] || "/tmp"
|
||||
source_file = File.join(tempdir, "abs.c")
|
||||
File.open(source_file, "w") do |fh|
|
||||
fh.puts(<<-EOF)
|
||||
int main()
|
||||
{
|
||||
return 29;
|
||||
}
|
||||
EOF
|
||||
end
|
||||
env.Program("abs.exe", source_file)
|
||||
env(echo: :command) do |env|
|
||||
tempdir = ENV["TEMP"] || ENV["TMP"] || "/tmp"
|
||||
source_file = File.join(tempdir, "abs.c")
|
||||
File.open(source_file, "w") do |fh|
|
||||
fh.puts(<<-EOF)
|
||||
int main()
|
||||
{
|
||||
return 29;
|
||||
}
|
||||
EOF
|
||||
end
|
||||
env.Program("abs.exe", source_file)
|
||||
end
|
||||
@@ -10,15 +10,13 @@ class ThreadedTestBuilder < Rscons::Builder
|
||||
end
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.add_builder(ThreadedTestBuilder)
|
||||
env.ThreadedTestBuilder("T3", [], "delay" => 3)
|
||||
env.ThreadedTestBuilder("T2", [], "delay" => 1.0)
|
||||
env.ThreadedTestBuilder("T1", [], "delay" => 0.5)
|
||||
env.barrier
|
||||
env.ThreadedTestBuilder("T6", [], "delay" => 1.5)
|
||||
env.ThreadedTestBuilder("T5", [], "delay" => 1.0)
|
||||
env.ThreadedTestBuilder("T4", [], "delay" => 0.5)
|
||||
end
|
||||
env do |env|
|
||||
env.add_builder(ThreadedTestBuilder)
|
||||
env.ThreadedTestBuilder("T3", [], "delay" => 3)
|
||||
env.ThreadedTestBuilder("T2", [], "delay" => 1.0)
|
||||
env.ThreadedTestBuilder("T1", [], "delay" => 0.5)
|
||||
env.barrier
|
||||
env.ThreadedTestBuilder("T6", [], "delay" => 1.5)
|
||||
env.ThreadedTestBuilder("T5", [], "delay" => 1.0)
|
||||
env.ThreadedTestBuilder("T4", [], "delay" => 0.5)
|
||||
end
|
||||
@@ -0,0 +1,13 @@
|
||||
env("e", echo: :command) do |env|
|
||||
source_file = "#{env.build_root}/src/foo.c"
|
||||
FileUtils.mkdir_p(File.dirname(source_file))
|
||||
File.open(source_file, "w") do |fh|
|
||||
fh.puts(<<-EOF)
|
||||
int main()
|
||||
{
|
||||
return 29;
|
||||
}
|
||||
EOF
|
||||
end
|
||||
env.Program("foo.exe", source_file)
|
||||
end
|
||||
@@ -1,6 +1,4 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
object = env.Object("simple.o", "simple.c")
|
||||
env.Program("simple.exe", object)
|
||||
end
|
||||
env do |env|
|
||||
object = env.Object("simple.o", "simple.c")
|
||||
env.Program("simple.exe", object)
|
||||
end
|
||||
@@ -3,9 +3,8 @@ class TestBuilder < Rscons::Builder
|
||||
true
|
||||
end
|
||||
end
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.add_builder(TestBuilder)
|
||||
env.TestBuilder("file")
|
||||
end
|
||||
|
||||
env do |env|
|
||||
env.add_builder(TestBuilder)
|
||||
env.TestBuilder("file")
|
||||
end
|
||||
Loaded 100 of 237 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user