diff --git a/bru.py b/bru.py index ad51e79..d8c7c6b 100755 --- a/bru.py +++ b/bru.py @@ -29,6 +29,8 @@ def main(): parser_install = subparsers.add_parser('install') parser_install.add_argument("installables", default = [], nargs = '*', help = 'e.g. googlemock@1.7.0') + parser_install.add_argument('--targetPlatform', default='Native', required=False, + help = 'targetPlatform Native | iOS') parser_test = subparsers.add_parser('test') parser_test.add_argument("testables", default = [], nargs = '*', @@ -42,13 +44,15 @@ def main(): help = 'config Debug | Release') parser_make.add_argument('--verbose', '-v', default=0, action='count', help = 'enables verbose output in underlying build toolchain (e.g. make)') + parser_make.add_argument('--targetPlatform', default='Native', required=False, + help = 'targetPlatform Native | iOS') args = parser.parse_args() library = get_library() if args.command == 'install': - brulib.install.cmd_install(library, args.installables) + brulib.install.cmd_install(library, args.installables, args.targetPlatform) elif args.command == 'make': - brulib.make.cmd_make(args.config, args.verbose) + brulib.make.cmd_make(args.config, args.verbose, args.targetPlatform) elif args.command == 'test': brulib.runtests.cmd_test(args.testables) else: diff --git a/bru.sh b/bru.sh index 4670235..3197c41 100755 --- a/bru.sh +++ b/bru.sh @@ -10,9 +10,14 @@ # http://unix.stackexchange.com/questions/17499/get-path-of-current-script-when-executed-through-a-symlink # This is brittle & frowned upon, I might change this some time... -script_dir="$(dirname "$(readlink -f "$0")")" +if [ "$(uname)" == "Darwin" ]; then +script_dir="$(dirname "$(readlink "$0")")" +else +script_dir="$(dirname "$(readlink -f "$0")")" +fi $script_dir/autoupdate.py --hours 24 + # after the autoupdate run bru.py, forwarding all cmd line params $script_dir/bru.py $@ diff --git a/bru_common.gypi b/bru_common.gypi index 2e93d34..eaf308c 100644 --- a/bru_common.gypi +++ b/bru_common.gypi @@ -35,6 +35,25 @@ ["target_arch=='x64'", { "msvs_configuration_platform": "x64", }], + ['OS=="mac"', { + 'xcode_settings': { + 'CLANG_CXX_LANGUAGE_STANDARD' : 'c++0x', + 'CLANG_CXX_LIBRARY' : 'libc++', + 'OTHER_CFLAGS' : '-Wno-c++11-narrowing -fvisibility=hidden', + }, # xcode_settings + }], + ['OS=="iOS"', { + 'xcode_settings': { + 'SDKROOT': 'iphoneos', + 'TARGETED_DEVICE_FAMILY': '1,2', + 'CODE_SIGN_IDENTITY': 'iPhone Developer', + 'IPHONEOS_DEPLOYMENT_TARGET': '6.0', + 'ARCHS': '$(ARCHS_STANDARD_32_64_BIT) armv7s', + 'CLANG_CXX_LANGUAGE_STANDARD' : 'c++0x', + 'CLANG_CXX_LIBRARY' : 'libc++', + 'OTHER_CFLAGS' : '-Wno-c++11-narrowing -fvisibility=hidden', + }, # xcode_settings + }] ], "msvs_settings": { "VCCLCompilerTool": { @@ -49,7 +68,8 @@ }, }, "xcode_settings": { - "GCC_OPTIMIZATION_LEVEL": "0", #stop gyp from defaulting to - Os + "GCC_OPTIMIZATION_LEVEL ": "0", #stop gyp from defaulting to - Os + "CONFIGURATION_BUILD_DIR" : "../../lib/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)" }, }, "Release": { @@ -69,7 +89,26 @@ "conditions": [ ["target_arch=='x64'", { "msvs_configuration_platform": "x64", - }] + }], + ['OS=="mac"', { + 'xcode_settings': { + 'CLANG_CXX_LANGUAGE_STANDARD' : 'c++0x', + 'CLANG_CXX_LIBRARY' : 'libc++', + 'OTHER_CFLAGS' : '-Wno-c++11-narrowing -fvisibility=hidden', + }, # xcode_settings + }], + ['OS=="iOS"', { + 'xcode_settings': { + 'SDKROOT': 'iphoneos', + 'TARGETED_DEVICE_FAMILY': '1,2', + 'CODE_SIGN_IDENTITY': 'iPhone Developer', + 'IPHONEOS_DEPLOYMENT_TARGET': '6.0', + 'ARCHS': '$(ARCHS_STANDARD_32_64_BIT) armv7s', + 'CLANG_CXX_LANGUAGE_STANDARD' : 'c++0x', + 'CLANG_CXX_LIBRARY' : 'libc++', + 'OTHER_CFLAGS' : '-Wno-c++11-narrowing -fvisibility=hidden', + }, # xcode_settings + }] ], "msvs_settings": { "VCCLCompilerTool": { @@ -83,6 +122,9 @@ "EnableIntrinsicFunctions": "true" } }, + "xcode_settings": { + "CONFIGURATION_BUILD_DIR" : "../../lib/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)" + }, "VCLibrarianTool": { "AdditionalOptions": [ "/LTCG" # link time code generation @@ -93,7 +135,7 @@ "OptimizeReferences": 2, # /OPT:REF "EnableCOMDATFolding": 2, # /OPT:ICF "LinkIncremental": 1 # disable incremental linking - } + }, } }, diff --git a/brulib/install.py b/brulib/install.py index 720a56e..7f058bd 100644 --- a/brulib/install.py +++ b/brulib/install.py @@ -9,6 +9,7 @@ import filecmp import platform import collections +import subprocess import brulib.jsonc import brulib.make import brulib.module_downloader @@ -184,8 +185,19 @@ def exec_make_command(formula, bru_modules_root, system): make_commands = formula['make_command'] if not system in make_commands: raise Exception("no key {} in make_command".format(system)) + make_command = make_commands[system] + if system == 'iOS': + # xcode installation dir might vary -- we need to find the right location to pass to the config script + xcode_path=subprocess.check_output(['xcode-select', '-p'],universal_newlines=True).strip() + # the path that we need to pass to the config script depends on the latest supported iOS version of xcode + xcode_iOS=subprocess.check_output('xcodebuild -showsdks | grep iphoneos | cut -d " " -f 2', shell=True,universal_newlines=True).strip() + print ("Found xcode here: '{}'".format(xcode_path)) + print ("iOS Version from xcode: '{}'".format(xcode_iOS)) + # if the make command contains a placeholder for the xcode path and/or iOS version, we need to replace it. + make_command = make_command.replace("__BRU_XCODE__",xcode_path).replace("__BRU_IOS_VERSION__",xcode_iOS) + # On Windows msvs toolchain build tools are typically not in your # PATH, but are expected to be added to your PATH via # %VS110COMNTOOLS%\vsvars32.bat. Let's call this vsvars32.bat @@ -219,12 +231,15 @@ def exec_make_command(formula, bru_modules_root, system): raise ValueError("build failed with error code {}".format(error_code)) touch(make_done_file) -def download_module(library, module_name, module_version): +def download_module(library, module_name, module_version, targetPlatform): bru_modules_root = "./bru_modules" formula = library.load_formula(module_name, module_version) brulib.module_downloader.get_urls(library, formula, bru_modules_root) - exec_make_command(formula, bru_modules_root, platform.system()) - + if targetPlatform == 'Native': + exec_make_command(formula, bru_modules_root, platform.system()) + else: + exec_make_command(formula, bru_modules_root, targetPlatform) + def verify_resolved_dependencies(formula, target, resolved_dependencies): """ param formula is the formula with a bunch of desired(!) dependencies which after conflict resolution across the whole set of diverse deps @@ -448,7 +463,7 @@ def resolve_conflicts(library, dependencies, root_requestor): return [(module, resolved['version'], resolved['requestor']) for (module, resolved) in recursive_deps.items()] -def install_from_bru_file(bru_filename, library): +def install_from_bru_file(bru_filename, library, targetPlatform): """ this gets executed when you 'bru install': it looks for a *.bru file in cwd and downloads the listed deps """ package_jso = brulib.jsonc.loadfile(bru_filename) @@ -459,7 +474,7 @@ def install_from_bru_file(bru_filename, library): print('processing dependency {} version {} requested by {}' .format(module_name, module_version, requestor)) formula = library.load_formula(module_name, module_version) - download_module(library, module_name, module_version) + download_module(library, module_name, module_version, targetPlatform) copy_gyp(library, formula, resolved_dependencies) # copy common.gypi which is referenced by module.gyp files and usually @@ -495,7 +510,7 @@ def install_from_bru_file(bru_filename, library): # todo: clean up unused module dependencies from /bru_modules? -def cmd_install(library, installables): +def cmd_install(library, installables, targetPlatform="Native"): """ param installables: e.g. [] or ['googlemock@1.7.0', 'boost-regex'] This is supposed to mimic 'npm install' syntax, see https://docs.npmjs.com/cli/install. Examples: @@ -518,7 +533,7 @@ def cmd_install(library, installables): if bru_filename == None: raise Exception("no file *.bru in cwd") print('installing dependencies listed in', bru_filename) - install_from_bru_file(bru_filename, library) + install_from_bru_file(bru_filename, library, targetPlatform) else: # installables are ['googlemock', 'googlemock@1.7.0'] # In this case we simply add deps to the *.bru (and *.gyp) file in @@ -537,4 +552,4 @@ def cmd_install(library, installables): bru_filename, gyp_filename)) # now download the new dependency just like 'bru install' would do # after we added the dep to the bru & gyp file: - install_from_bru_file(bru_filename, library) + install_from_bru_file(bru_filename, library, targetPlatform) diff --git a/brulib/make.py b/brulib/make.py index 1f269cc..babbf68 100644 --- a/brulib/make.py +++ b/brulib/make.py @@ -9,7 +9,7 @@ import platform import brulib.install -def cmd_make(config, verbose): +def cmd_make(config, verbose, targetPlatform="Native"): """ this command makes some educated guesses about which toolchain the user probably wants to run, then invokes gyp to create the makefiles for this toolchain and invokes the build. On Linux @@ -25,7 +25,7 @@ def cmd_make(config, verbose): param verbose 0 means not verbose, >= 1 means higher verbosity level (whatever that means in the underlying toolchain) """ - print("running 'bru make --config {}'".format(config)) + print("running 'bru make --config {} --targetPlatform {}'".format(config,targetPlatform)) # first locate the single gyp in the cwd bru_file = brulib.install.get_single_bru_file('.') @@ -39,9 +39,25 @@ def cmd_make(config, verbose): system = platform.system() if system == 'Windows': - cmd_make_win(gyp_file, config) + if targetPlatform == 'Native': + cmd_make_win(gyp_file, config) + else: + raise Exception('targetPlatform {} not supported on platform {}'\ + .format(targetPlatform, system)) elif system == 'Linux': - cmd_make_linux(gyp_file, config, verbose) + if targetPlatform == 'Native': + cmd_make_linux(gyp_file, config, verbose) + else: + raise Exception('targetPlatform {} not supported on platform {}'\ + .format(targetPlatform, system)) + elif system == 'Darwin': + if targetPlatform == 'iOS': + cmd_make_ios(gyp_file, config, verbose) + elif targetPlatform == 'Native': + cmd_make_macos(gyp_file, config, verbose) + else: + raise Exception('targetPlatform {} not supported on platform {}'\ + .format(targetPlatform, system)) else: raise Exception('no idea how to invoke gyp & toolchain on platform {}'\ .format(system)) @@ -167,3 +183,71 @@ def cmd_make_linux(gyp_filename, config, verbose): if returncode != 0: raise Exception('Build failed: make returned', returncode) print('Build complete.') + +def cmd_make_macos(gyp_filename, config, verbose): + # Here we could check if ninja or some such is installed to generate ninja + # project files. But for simplicity's sake let's just use whatever gyp + # defaults to. + + # For some odd reason passing './package.gyp' as a param to gyp will + # generate garbage, instead you gotta pass 'package.gyp'. Se let's + # explicitly remove a leading ./ + dirname = os.path.dirname(gyp_filename) + assert dirname == '.' or len(dirname) == 0 + gyp_filename = os.path.basename(gyp_filename) + gyp_cmdline = 'gyp --depth=. -f xcode {} --generator-output=./xcode-macos'.format(gyp_filename) + run_gyp(gyp_cmdline) + filepattern = './xcode-macos/*.xcodeproj' + files = glob.glob(filepattern) + print(filepattern) + print(files) + if len(files) == 0: + raise Exception('gyp did not generate {}, no idea how to ' + 'build with your toolchain, please build manually').format(filepattern) + xcode_cmdline = 'xCodeBuild -alltargets -project {} -configuration {}'.format(files[0],config) + print("running '{}'".format(xcode_cmdline)) + returncode = os.system(xcode_cmdline) + if returncode != 0: + raise Exception('Build failed: make returned', returncode) + print('Build complete.') + +def cmd_make_ios(gyp_filename, config, verbose): + # Here we could check if ninja or some such is installed to generate ninja + # project files. But for simplicity's sake let's just use whatever gyp + # defaults to. + + # For some odd reason passing './package.gyp' as a param to gyp will + # generate garbage, instead you gotta pass 'package.gyp'. Se let's + # explicitly remove a leading ./ + dirname = os.path.dirname(gyp_filename) + assert dirname == '.' or len(dirname) == 0 + gyp_filename = os.path.basename(gyp_filename) + gyp_cmdline = 'gyp --depth=. -f xcode -DOS=iOS {} --generator-output=./xcode-ios'.format(gyp_filename) + run_gyp(gyp_cmdline) + + filepattern = './xcode-ios/*.xcodeproj' + files = glob.glob(filepattern) + if len(files) == 0: + raise Exception('gyp did not generate {}, no idea how to ' + 'build with your toolchain, please build manually').format(filepattern) + xcode_cmdline = 'xCodeBuild -alltargets -project {} -configuration {} -sdk iphonesimulator'.format(files[0],config) + print("running '{}'".format(xcode_cmdline)) + returncode = os.system(xcode_cmdline) + if returncode != 0: + raise Exception('Build failed: make for device returned', returncode) + xcode_cmdline = 'xCodeBuild -alltargets -project {} -configuration {} -sdk iphoneos'.format(files[0],config) + print("running '{}'".format(xcode_cmdline)) + returncode = os.system(xcode_cmdline) + if returncode != 0: + raise Exception('Build failed: make for simulator returned', returncode) + mkdir_cmdline = 'mkdir lib/{}-Universial'.format(config) + returncode = os.system(mkdir_cmdline) + filepattern = './lib/{}-iphoneos/lib*.a'.format(config) + for file in glob.glob(filepattern): + name = os.path.basename(os.path.normpath(file)) + command = 'lipo -create lib/{}-iphoneos/{} lib/{}-iphonesimulator/{} -output lib/{}-Universial/{}'.format(config,name,config,name,config,name) + print("running '{}'".format(command)) + returncode = os.system(command) + if returncode != 0: + raise Exception('Build failed: lipo returned', returncode) + print('Build complete.') diff --git a/brulib/runtests.py b/brulib/runtests.py index dc0ad15..201dfa2 100644 --- a/brulib/runtests.py +++ b/brulib/runtests.py @@ -53,6 +53,7 @@ def locate_executable(target_name): """ for config in ['Release', 'Debug']: candidates = [ + os.path.join('lib', config, target_name), os.path.join('out', config, target_name), os.path.join('out', config, target_name + '.exe'), os.path.join(config, target_name), diff --git a/library/boost-algorithm/1.57.0.gyp b/library/boost-algorithm/1.57.0.gyp index 2932541..2fad915 100644 --- a/library/boost-algorithm/1.57.0.gyp +++ b/library/boost-algorithm/1.57.0.gyp @@ -28,9 +28,12 @@ "../boost-exception/boost-exception.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, + } + ], + + "conditions": [ + ["OS!='iOS'", { - { "target_name": "boost-algorithm_partition_copy_test1", "type": "executable", "test": {}, @@ -41,7 +44,6 @@ "boost-algorithm", "../boost-test/boost-test.gyp:*" ] - } - + }] ] } \ No newline at end of file diff --git a/library/boost-any/1.57.0.gyp b/library/boost-any/1.57.0.gyp index 048c56f..2224cf4 100644 --- a/library/boost-any/1.57.0.gyp +++ b/library/boost-any/1.57.0.gyp @@ -19,8 +19,10 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-type_index/boost-type_index.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "boost-any_test", "type": "executable", @@ -28,7 +30,9 @@ "sources": [ "1.57.0/any-boost-1.57.0/test/any_test.cpp" ], - "dependencies": [ "boost-any" ] + "dependencies": [ "boost-any" + ] } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-array/1.57.0.gyp b/library/boost-array/1.57.0.gyp index e9cc096..ff6f9a2 100644 --- a/library/boost-array/1.57.0.gyp +++ b/library/boost-array/1.57.0.gyp @@ -18,14 +18,18 @@ "../boost-assert/boost-assert.gyp:*", "../boost-core/boost-core.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "boost-array_array2", "type": "executable", "test": {}, "sources": [ "1.57.0/array-boost-1.57.0/test/array2.cpp" ], - "dependencies": [ "boost-array" ] + "dependencies": [ "boost-array" + ] } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-chrono/1.57.0.gyp b/library/boost-chrono/1.57.0.gyp index b26df0c..1d791af 100644 --- a/library/boost-chrono/1.57.0.gyp +++ b/library/boost-chrono/1.57.0.gyp @@ -36,8 +36,10 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-ratio/boost-ratio.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "boost-chrono_example_test_duration", "type": "executable", @@ -55,7 +57,9 @@ "sources": [ "1.57.0/chrono-boost-1.57.0/example/test_clock.cpp" ], - "dependencies": [ "boost-chrono" ] + "dependencies": [ "boost-chrono" + ] } + ] ] } diff --git a/library/boost-circular_buffer/1.57.0.gyp b/library/boost-circular_buffer/1.57.0.gyp index 56aa29a..72ec016 100644 --- a/library/boost-circular_buffer/1.57.0.gyp +++ b/library/boost-circular_buffer/1.57.0.gyp @@ -23,8 +23,10 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "boost-circular_buffer_example", "type": "executable", @@ -32,7 +34,9 @@ "sources": [ "1.57.0/circular_buffer-boost-1.57.0/example/circular_buffer_example.cpp" ], - "dependencies": [ "boost-circular_buffer" ] + "dependencies": [ "boost-circular_buffer" + ] } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-container/1.57.0.gyp b/library/boost-container/1.57.0.gyp index 0200a57..0b97bb5 100644 --- a/library/boost-container/1.57.0.gyp +++ b/library/boost-container/1.57.0.gyp @@ -31,8 +31,10 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-intrusive/boost-intrusive.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", # this test compiles ridiculously slowly btw (about 1min) # So I disabled it for now. #{ @@ -48,8 +50,9 @@ "type": "executable", "test": {}, "sources": [ "1.57.0/container-boost-1.57.0/test/string_test.cpp" ], - "dependencies": [ "boost-container" ] + "dependencies": [ "boost-container" + ] } - + ] ] -} \ No newline at end of file +} diff --git a/library/boost-context/1.57.0.gyp b/library/boost-context/1.57.0.gyp index fc0c313..4bae60c 100644 --- a/library/boost-context/1.57.0.gyp +++ b/library/boost-context/1.57.0.gyp @@ -76,8 +76,21 @@ #"1.57.0/context-boost-1.57.0/src/asm/jump_x86_64_ms_pe_masm.asm", #"1.57.0/context-boost-1.57.0/src/asm/make_x86_64_ms_pe_masm.asm" ] - }, { - # OS!='win' + }], + ["OS=='mac'", { + "sources": [ + "1.57.0/context-boost-1.57.0/src/asm/jump_x86_64_ms_pe_masm.asm", + "1.57.0/context-boost-1.57.0/src/asm/make_x86_64_ms_pe_masm.asm" + ] + }], + ["OS=='iOS'", { + "sources": [ + "1.57.0/context-boost-1.57.0/src/asm/jump_arm_aapcs_pe_armasm.asm", + "1.57.0/context-boost-1.57.0/src/asm/make_arm_aapcs_pe_armasm.asm" + ] + }], + + ["OS=='linux'", { "sources": [ # 64bit elf "1.57.0/context-boost-1.57.0/src/asm/jump_x86_64_sysv_elf_gas.S", @@ -91,8 +104,10 @@ "dependencies": [ "../boost-config/boost-config.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "boost-context_test", "type": "executable", @@ -115,7 +130,9 @@ "boost-context", "../boost-assert/boost-assert.gyp:*", "../boost-array/boost-array.gyp:*" + ] } + ] ] } diff --git a/library/boost-date_time/1.57.0.gyp b/library/boost-date_time/1.57.0.gyp index 4c5efff..53e659f 100644 --- a/library/boost-date_time/1.57.0.gyp +++ b/library/boost-date_time/1.57.0.gyp @@ -28,8 +28,10 @@ "../boost-static_assert/boost-static_assert.gyp:*", "../boost-mpl/boost-mpl.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "gregorian_testparse_date", "type": "executable", @@ -37,7 +39,9 @@ "sources": [ "1.57.0/date_time-boost-1.57.0/test/gregorian/testparse_date.cpp" ], - "dependencies": [ "boost-date_time" ] + "dependencies": [ "boost-date_time" + ] } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-filesystem/1.57.0.gyp b/library/boost-filesystem/1.57.0.gyp index 9d7df96..e3861c9 100644 --- a/library/boost-filesystem/1.57.0.gyp +++ b/library/boost-filesystem/1.57.0.gyp @@ -28,8 +28,10 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "boost-filesystem_fstream_test", "type": "executable", @@ -51,8 +53,9 @@ ], "dependencies": [ "boost-filesystem" + ] } - + ] ] -} \ No newline at end of file +} diff --git a/library/boost-format/1.57.0.gyp b/library/boost-format/1.57.0.gyp index 8d4ea38..53b927a 100644 --- a/library/boost-format/1.57.0.gyp +++ b/library/boost-format/1.57.0.gyp @@ -19,16 +19,20 @@ "../boost-throw_exception/boost-throw_exception.gyp:*", "../boost-mpl/boost-mpl.gyp:*" ] - }, + } + # TODO: add tests once boost-test dependency cycles are sorted out + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "boost-format_sample_formats", "type": "executable", "test": {}, "sources": [ "1.57.0/format-boost-1.57.0/example/sample_formats.cpp" ], - "dependencies": [ "boost-format" ] + "dependencies": [ "boost-format" + ] } - - # TODO: add tests once boost-test dependency cycles are sorted out + ] ] -} \ No newline at end of file +} diff --git a/library/boost-fusion/1.57.0.gyp b/library/boost-fusion/1.57.0.gyp index e859f88..b16b3af 100644 --- a/library/boost-fusion/1.57.0.gyp +++ b/library/boost-fusion/1.57.0.gyp @@ -21,8 +21,10 @@ "../boost-static_assert/boost-static_assert.gyp:*", "../boost-mpl/boost-mpl.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", # this test fails for me with gcc 4.8.1 #{ # "target_name": "boost-fusion_invoke", @@ -37,7 +39,9 @@ "type": "executable", "test": {}, "sources": [ "1.57.0/fusion-boost-1.57.0/test/functional/make_fused.cpp" ], - "dependencies": [ "boost-fusion" ] + "dependencies": [ "boost-fusion" + ] } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-iostreams/1.57.0.gyp b/library/boost-iostreams/1.57.0.gyp index 7c9978e..792e45e 100644 --- a/library/boost-iostreams/1.57.0.gyp +++ b/library/boost-iostreams/1.57.0.gyp @@ -40,14 +40,18 @@ "../boost-mpl/boost-mpl.gyp:*", "../zlib/zlib.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { "target_name": "boost-iostreams_back_inserter_example", "type": "executable", "test": {}, "sources": [ "1.57.0/iostreams-boost-1.57.0/example/boost_back_inserter_example.cpp" ], - "dependencies": [ "boost-iostreams" ] + "dependencies": [ "boost-iostreams" + ] } + ] ] } diff --git a/library/boost-multi_index/1.57.0.gyp b/library/boost-multi_index/1.57.0.gyp index 0f4ba8e..bc114bf 100644 --- a/library/boost-multi_index/1.57.0.gyp +++ b/library/boost-multi_index/1.57.0.gyp @@ -30,8 +30,11 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-foreach/boost-foreach.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-multi_index_test_basic", "type": "executable", @@ -51,7 +54,9 @@ "1.57.0/multi_index-boost-1.57.0/example/basic.cpp" ], "dependencies": [ "boost-multi_index" ] - } - + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-parameter/1.57.0.gyp b/library/boost-parameter/1.57.0.gyp index 1e5ba8f..7f91035 100644 --- a/library/boost-parameter/1.57.0.gyp +++ b/library/boost-parameter/1.57.0.gyp @@ -20,8 +20,11 @@ "../boost-mpl/boost-mpl.gyp:*" #"../boost-python/boost-python.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-parameter_test_deduced", "type": "executable", @@ -35,8 +38,10 @@ "type": "executable", "test": {}, "sources": [ "1.57.0/parameter-boost-1.57.0/test/tutorial.cpp" ], - "dependencies": [ "boost-parameter" ] - } - + "dependencies": [ "boost-parameter"] + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-pool/1.57.0.gyp b/library/boost-pool/1.57.0.gyp index 37670e0..22f105a 100644 --- a/library/boost-pool/1.57.0.gyp +++ b/library/boost-pool/1.57.0.gyp @@ -19,14 +19,20 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-thread/boost-thread.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-pool_time_pool_alloc", "type": "executable", "test": {}, "sources": ["1.57.0/pool-boost-1.57.0/example/time_pool_alloc.cpp"], "dependencies": [ "boost-pool" ] - } + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-program_options/1.57.0.gyp b/library/boost-program_options/1.57.0.gyp index 245ba11..a177c78 100644 --- a/library/boost-program_options/1.57.0.gyp +++ b/library/boost-program_options/1.57.0.gyp @@ -28,8 +28,11 @@ "../boost-any/boost-any.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-program_options_positional_options_test", "type": "executable", @@ -38,6 +41,9 @@ "1.57.0/program_options-boost-1.57.0/test/positional_options_test.cpp" ], "dependencies": [ "boost-program_options" ] - } + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-property_tree/1.57.0.gyp b/library/boost-property_tree/1.57.0.gyp index 88a93ea..4ae43d9 100644 --- a/library/boost-property_tree/1.57.0.gyp +++ b/library/boost-property_tree/1.57.0.gyp @@ -25,16 +25,25 @@ "../boost-any/boost-any.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - - # note the json parser is the only part of boost-property_tree - # using boost-spirit - { - "target_name": "boost-property_tree_test_json_parser", - "type": "executable", - "test": {}, - "sources": [ "1.57.0/property_tree-boost-1.57.0/test/test_json_parser.cpp" ], - "dependencies": [ "boost-property_tree" ] - } + } + ], + "conditions": [ + ["OS!='iOS'", { + "conditions": [ + ["OS!='mac'", { + "targets": [ + # note the json parser is the only part of boost-property_tree + # using boost-spirit + { + "target_name": "boost-property_tree_test_json_parser", + "type": "executable", + "test": {}, + "sources": [ "1.57.0/property_tree-boost-1.57.0/test/test_json_parser.cpp" ], + "dependencies": [ "boost-property_tree"] + } + ] + }]] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-proto/1.57.0.gyp b/library/boost-proto/1.57.0.gyp index f41fa9a..7f9dfba 100644 --- a/library/boost-proto/1.57.0.gyp +++ b/library/boost-proto/1.57.0.gyp @@ -20,14 +20,19 @@ "../boost-static_assert/boost-static_assert.gyp:*", "../boost-mpl/boost-mpl.gyp:*" ] - }, - - { + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-proto_example_calc2", "type": "executable", "test": {}, "sources": [ "1.57.0/proto-boost-1.57.0/example/calc2.cpp" ], - "dependencies": [ "boost-proto" ] - } + "dependencies": [ "boost-proto"] + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-ptr_container/1.57.0.gyp b/library/boost-ptr_container/1.57.0.gyp index 2c455b2..86ebc46 100644 --- a/library/boost-ptr_container/1.57.0.gyp +++ b/library/boost-ptr_container/1.57.0.gyp @@ -25,14 +25,20 @@ "../boost-unordered/boost-unordered.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-ptr_container_tut1", "type": "executable", "test": {}, "sources": [ "1.57.0/ptr_container-boost-1.57.0/test/tut1.cpp" ], "dependencies": [ "boost-ptr_container" ] - } + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-random/1.57.0.gyp b/library/boost-random/1.57.0.gyp index b9ec6de..f3a9c59 100644 --- a/library/boost-random/1.57.0.gyp +++ b/library/boost-random/1.57.0.gyp @@ -25,17 +25,22 @@ "../boost-static_assert/boost-static_assert.gyp:*", "../boost-mpl/boost-mpl.gyp:*" ] - }, + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-random_test_histogram", "type": "executable", "test": {}, "sources": [ "1.57.0/random-boost-1.57.0/test/histogram.cpp" ], - "dependencies" : [ "boost-random" ] + "dependencies" : [ "boost-random" + ] } - - # this test requires boost-test, which is a pretty heavy-weight + + # this test requires boost-test, which is a pretty heavy-weight # dependency, so not enabling this test by default #{ # "target_name": "boost-random_test_normal_distribution", @@ -47,5 +52,9 @@ # "../boost-test/boost-test.gyp:*" # ] #} + + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-rational/1.57.0.gyp b/library/boost-rational/1.57.0.gyp index 059fac5..a8febf8 100644 --- a/library/boost-rational/1.57.0.gyp +++ b/library/boost-rational/1.57.0.gyp @@ -18,8 +18,11 @@ "../boost-math/boost-math.gyp:*", "../boost-mpl/boost-mpl.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-rational_example", "type": "executable", @@ -27,8 +30,10 @@ "sources": [ "1.57.0/rational-boost-1.57.0/test/rational_example.cpp" ], - "dependencies": [ "boost-rational" ] - } - + "dependencies": [ "boost-rational"] + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-regex/1.57.0.gyp b/library/boost-regex/1.57.0.gyp index c9c56f1..442615c 100644 --- a/library/boost-regex/1.57.0.gyp +++ b/library/boost-regex/1.57.0.gyp @@ -41,7 +41,7 @@ "../boost-core/boost-core.gyp:*", "../boost-functional/boost-functional.gyp:*" ] - }, + } # Adding this test will cause circular dep problems, since pulling # in boost-test will cause lots of additional deps, including to @@ -58,11 +58,15 @@ # "dependencies": [ # "boost-regex" # ] - #} - - # more of an example than a test, better than nothing as long as - # the unit test isnt being run: - { + #} + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + { + # more of an example than a test, better than nothing as long as + # the unit test isnt being run: + "target_name": "boost_regex_grep_example_3", "type": "executable", "test": { @@ -73,6 +77,9 @@ "1.57.0/regex-boost-1.57.0/example/snippets/regex_grep_example_3.cpp" ], "dependencies": [ "boost-regex" ] - } + } + ] + } + ] ] } diff --git a/library/boost-serialization/1.57.0.gyp b/library/boost-serialization/1.57.0.gyp index 2ad08c4..2bf3791 100644 --- a/library/boost-serialization/1.57.0.gyp +++ b/library/boost-serialization/1.57.0.gyp @@ -37,8 +37,11 @@ "../boost-core/boost-core.gyp:*", "../boost-mpl/boost-mpl.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ # fails on Windows with # "filesystem::unique_path: The profile for the user is a temporary profile" # Probably should fix my profile... @@ -59,7 +62,10 @@ "1.57.0/serialization-boost-1.57.0/example/portable_binary_oarchive.cpp", "1.57.0/serialization-boost-1.57.0/example/portable_binary_iarchive.cpp" ], - "dependencies": [ "boost-serialization" ] - } + "dependencies": [ "boost-serialization"] + } + ] + } + ] ] } diff --git a/library/boost-signals/1.57.0.gyp b/library/boost-signals/1.57.0.gyp index cd8d686..315145f 100644 --- a/library/boost-signals/1.57.0.gyp +++ b/library/boost-signals/1.57.0.gyp @@ -24,14 +24,20 @@ "../boost-any/boost-any.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-signals_example_disconnect_all", "type": "executable", "test": {}, "sources": [ "1.57.0/signals-boost-1.57.0/example/disconnect_all.cpp" ], "dependencies": ["boost-signals"] - } + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-system/1.57.0.gyp b/library/boost-system/1.57.0.gyp index 2262dc4..a7290e9 100644 --- a/library/boost-system/1.57.0.gyp +++ b/library/boost-system/1.57.0.gyp @@ -20,8 +20,11 @@ "../boost-assert/boost-assert.gyp:*", "../boost-core/boost-core.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-system_error_test", "type": "executable", @@ -30,6 +33,9 @@ "1.57.0/system-boost-1.57.0/test/system_error_test.cpp" ], "dependencies": [ "boost-system" ] - } + } + ] + } + ] ] } \ No newline at end of file diff --git a/library/boost-test/1.57.0.gyp b/library/boost-test/1.57.0.gyp index 337ea18..93f3ba8 100644 --- a/library/boost-test/1.57.0.gyp +++ b/library/boost-test/1.57.0.gyp @@ -40,8 +40,12 @@ "../boost-exception/boost-exception.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + { "target_name": "boost-test_unit_test_example_01", "type": "executable", @@ -85,7 +89,9 @@ "1.57.0/test-boost-1.57.0/test/test_case_template_test.cpp" ], "dependencies": [ "boost-test" ] - } - + } + ] + } + ] ] } \ No newline at end of file diff --git a/library/boost-thread/1.57.0.gyp b/library/boost-thread/1.57.0.gyp index 9f25349..87f7915 100644 --- a/library/boost-thread/1.57.0.gyp +++ b/library/boost-thread/1.57.0.gyp @@ -60,7 +60,11 @@ "../boost-intrusive/boost-intrusive.gyp:*", "../boost-date_time/boost-date_time.gyp:*" ] - }, + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-thread_test_futures", @@ -85,9 +89,10 @@ ], "dependencies": [ "../boost-test/boost-test.gyp:*", - "boost-thread" - ] - } - + "boost-thread"] + } + ] + } + ] ] } diff --git a/library/boost-timer/1.57.0.gyp b/library/boost-timer/1.57.0.gyp index 9c3581b..1fff423 100644 --- a/library/boost-timer/1.57.0.gyp +++ b/library/boost-timer/1.57.0.gyp @@ -21,8 +21,11 @@ "../boost-system/boost-system.gyp:*", "../boost-core/boost-core.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-timer_cpu_timer_test", "type": "executable", @@ -42,8 +45,10 @@ "sources": [ "1.57.0/timer-boost-1.57.0/example/timex.cpp" ], - "dependencies": [ "boost-timer" ] - } - + "dependencies": [ "boost-timer"] + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-tokenizer/1.57.0.gyp b/library/boost-tokenizer/1.57.0.gyp index 4c5b550..807a5b3 100644 --- a/library/boost-tokenizer/1.57.0.gyp +++ b/library/boost-tokenizer/1.57.0.gyp @@ -17,8 +17,11 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-tokenizer_simple_example_1", "type": "executable", @@ -27,6 +30,9 @@ "1.57.0/tokenizer-boost-1.57.0/test/simple_example_1.cpp" ], "dependencies": [ "boost-tokenizer" ] - } + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-type_index/1.57.0.gyp b/library/boost-type_index/1.57.0.gyp index 2e652bc..7fd53d4 100644 --- a/library/boost-type_index/1.57.0.gyp +++ b/library/boost-type_index/1.57.0.gyp @@ -20,8 +20,11 @@ "../boost-static_assert/boost-static_assert.gyp:*", "../boost-mpl/boost-mpl.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-type_index_ctti_print_name", "type": "executable", @@ -30,6 +33,9 @@ "1.57.0/type_index-boost-1.57.0/test/ctti_print_name.cpp" ], "dependencies": [ "boost-type_index" ] - } + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-unordered/1.57.0.gyp b/library/boost-unordered/1.57.0.gyp index c79305a..075e9ee 100644 --- a/library/boost-unordered/1.57.0.gyp +++ b/library/boost-unordered/1.57.0.gyp @@ -26,16 +26,22 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-iterator/boost-iterator.gyp:*" ] - }, - - { + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + { "target_name": "boost-unordered_erase_tests", "type": "executable", "test": {}, "sources": [ "1.57.0/unordered-boost-1.57.0/test/unordered/erase_tests.cpp" ], - "dependencies": [ "boost-unordered" ] - } + "dependencies": [ "boost-unordered"] + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-variant/1.57.0.gyp b/library/boost-variant/1.57.0.gyp index 6fe1362..cdb2e1b 100644 --- a/library/boost-variant/1.57.0.gyp +++ b/library/boost-variant/1.57.0.gyp @@ -26,8 +26,11 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-type_index/boost-type_index.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "boost-variant_recursive_variant_test", "type": "executable", @@ -37,8 +40,10 @@ ], "dependencies": [ "boost-variant", - "../boost-test/boost-test.gyp:*" - ] - } + "../boost-test/boost-test.gyp:*"] + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/boost-xpressive/1.57.0.gyp b/library/boost-xpressive/1.57.0.gyp index f219faa..61f12f1 100644 --- a/library/boost-xpressive/1.57.0.gyp +++ b/library/boost-xpressive/1.57.0.gyp @@ -30,20 +30,26 @@ "../boost-mpl/boost-mpl.gyp:*", "../boost-exception/boost-exception.gyp:*" ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + { # This requires an additional dep to boost-assign. # The test also compiles pretty slowly (30secs), so I was tempted # to disable it again. - { + "target_name": "boost-xpressive_example_numbers", "type": "executable", "test": {}, "sources": [ "1.57.0/xpressive-boost-1.57.0/example/numbers.cpp" ], "dependencies": [ "boost-xpressive" , - "../boost-assign/boost-assign.gyp:*" - ] - } + "../boost-assign/boost-assign.gyp:*"] + } + ] + } + ] ] -} \ No newline at end of file +} diff --git a/library/cryptopp/5.6.2.gyp b/library/cryptopp/5.6.2.gyp index 9482e9c..986308c 100644 --- a/library/cryptopp/5.6.2.gyp +++ b/library/cryptopp/5.6.2.gyp @@ -49,7 +49,18 @@ ] } }], + ["OS=='mac'", { + "defines": [ + "CRYPTOPP_DISABLE_ASM" + ] + }], + ["OS=='iOS'", { + "defines": [ + "CRYPTOPP_DISABLE_ASM" + ] + + }], ["OS=='linux'", { # TODO: only for compilation with clang? # WARNING: I ran into these issues here with clang 3.4 on Centos: @@ -80,40 +91,46 @@ ] } - }, - - # 'cryptest v' runs a sort-of-quick set of tests: it's quick in - # release builds with asm enabled, but 1 min if you enable clangs - # address sanitizer and disable asm. - { - "target_name": "cryptest", - "type": "executable", - - # this single test executable bundles a lot of tests and tools: - # * v runs a 1min unit test suite: valuable, but slow - # * b runs benchmarks, even slower - # I couldn't find a faster test, so tempted to disable this for now. - "test": { - "cwd": "5.6.2", - "args": [ "v" ] - }, - - "sources": [ - "5.6.2/bench.cpp", - "5.6.2/bench2.cpp", - "5.6.2/datatest.cpp", - "5.6.2/dlltest.cpp", - "5.6.2/regtest.cpp", - "5.6.2/test.cpp", - "5.6.2/validat1.cpp", - "5.6.2/validat2.cpp", - "5.6.2/validat3.cpp", - "5.6.2/fipsalgt.cpp" - ], - "dependencies": [ - "cryptopp" - ] } + ], + "conditions": [ + ["OS!='iOS'", + { + "targets": [ + # 'cryptest v' runs a sort-of-quick set of tests: it's quick in + # release builds with asm enabled, but 1 min if you enable clangs + # address sanitizer and disable asm. + { + "target_name": "cryptest", + "type": "executable", + + # this single test executable bundles a lot of tests and tools: + # * v runs a 1min unit test suite: valuable, but slow + # * b runs benchmarks, even slower + # I couldn't find a faster test, so tempted to disable this for now. + "test": { + "cwd": "5.6.2", + "args": [ "v" ] + }, + "sources": [ + "5.6.2/bench.cpp", + "5.6.2/bench2.cpp", + "5.6.2/datatest.cpp", + "5.6.2/dlltest.cpp", + "5.6.2/regtest.cpp", + "5.6.2/test.cpp", + "5.6.2/validat1.cpp", + "5.6.2/validat2.cpp", + "5.6.2/validat3.cpp", + "5.6.2/fipsalgt.cpp" + ], + "dependencies": [ + "cryptopp" + ] + } + ] + } + ] ] } diff --git a/library/googlemock/1.7.0.gyp b/library/googlemock/1.7.0.gyp index adcb621..d4265bf 100644 --- a/library/googlemock/1.7.0.gyp +++ b/library/googlemock/1.7.0.gyp @@ -26,9 +26,12 @@ # since gmock #includes refer to gtest #includes: "../googletest/googletest.gyp:googletest" ] - }, - - { + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + { "target_name": "googlemock_test", "type": "executable", "test": {}, @@ -42,7 +45,10 @@ "dependencies": [ "googlemock", "../googletest/googletest.gyp:*" - ] - } + ] + } + ] + } + ] ] } diff --git a/library/googletest/1.7.0.gyp b/library/googletest/1.7.0.gyp index 07eb054..0fae306 100644 --- a/library/googletest/1.7.0.gyp +++ b/library/googletest/1.7.0.gyp @@ -62,7 +62,7 @@ } }] ] - }, + } # This is one of the lib's own tests, it compiles but has # one failure 'OutputFileHelpersTest.GetCurrentExecutableName' @@ -82,8 +82,11 @@ # ] #} - # one of the googletest samples also can serve as a rudimentary test: - { + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + { "target_name": "googletest_sample1", "type" : "executable", "test": {}, @@ -96,7 +99,10 @@ ], "dependencies" : [ "googletest" - ] - } + ] + } + ] + } + ] ] } diff --git a/library/iconv/1.14.bru b/library/iconv/1.14.bru index 33a525e..d15f013 100644 --- a/library/iconv/1.14.bru +++ b/library/iconv/1.14.bru @@ -19,6 +19,8 @@ "make_command": { # had compiler error with default --with-threads "Linux": "cd libiconv-1.14 ; ./configure --disable-shared", - "Windows": "" + "Windows": "", + "Darwin": "cd libiconv-1.14 ; ./configure --disable-shared", + "iOS" : "cd libiconv-1.14 ; ./configure --host=arm-apple-darwin --disable-shared CXX=__BRU_XCODE__/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ CXXFLAGS='-I../opus/opus/include/ -I ../libogg-1.3.1/include/ -I../openssl-1.0.1e/include -Wno-c++11-narrowing -std=c++11 -stdlib=libc++ -arch armv7 -arch armv7s -arch arm64 -isysroot __BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS__BRU_IOS_VERSION__.sdk -fvisibility=hidden -miphoneos-version-min=6.0' CC=__BRU_XCODE__/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc CFLAGS='-I../opus/opus/include/ -I ../libogg-1.3.1/include/ -I../openssl-1.0.1e/include -Wno-c++11-narrowing -std=c++11 -stdlib=libc++ -arch armv7 -arch armv7s -arch arm64 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=6.0 -gdwarf-2 -mthumb -I/Library/iPhone/include -isysroot __BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS__BRU_IOS_VERSION__.sdk' LIBTOOL=__BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool STRIP=__BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/usr/bin/strip" } } diff --git a/library/iconv/1.14.gyp b/library/iconv/1.14.gyp index 1eafb85..9e43642 100644 --- a/library/iconv/1.14.gyp +++ b/library/iconv/1.14.gyp @@ -43,44 +43,49 @@ } }] ] - }, - - { - "target_name": "iconv_test-to-wchar", - "type": "executable", - "test": {}, - "include_dirs": [ - "1.14/libiconv-1.14", - "1.14/libiconv-1.14/windows/include_internal" # config.h - ], - "sources": [ "1.14/libiconv-1.14/tests/test-to-wchar.c" ], - "dependencies": [ "iconv" ] - }, - - { - "target_name": "iconv_test-shiftseq", - "type": "executable", - "test": {}, - "include_dirs": [ - "1.14/libiconv-1.14", - "1.14/libiconv-1.14/windows/include_internal" # config.h - ], - "sources": [ "1.14/libiconv-1.14/tests/test-shiftseq.c" ], - "dependencies": [ "iconv" ] } + ], + "conditions": [ + ["OS!='iOS'", + { + "targets": [ + { + "target_name": "iconv_test-to-wchar", + "type": "executable", + "test": {}, + "include_dirs": [ + "1.14/libiconv-1.14", + "1.14/libiconv-1.14/windows/include_internal" # config.h + ], + "sources": [ "1.14/libiconv-1.14/tests/test-to-wchar.c" ], + "dependencies": [ "iconv" ] + }, + { + "target_name": "iconv_test-shiftseq", + "type": "executable", + "test": {}, + "include_dirs": [ + "1.14/libiconv-1.14", + "1.14/libiconv-1.14/windows/include_internal" # config.h + ], + "sources": [ "1.14/libiconv-1.14/tests/test-shiftseq.c" ], + "dependencies": [ "iconv" ] + } - # prints too much, too slow - #{ - # "target_name": "iconv_test-genutf8", - # "type": "executable", - # "test": {}, - # "include_dirs": [ - # "1.14/libiconv-1.14", - # "1.14/libiconv-1.14/srclib" - # ], - # "sources": [ "1.14/libiconv-1.14/tests/genutf8.c" ], - # "dependencies": [ "iconv" ] - #} - + # prints too much, too slow + #{ + # "target_name": "iconv_test-genutf8", + # "type": "executable", + # "test": {}, + # "include_dirs": [ + # "1.14/libiconv-1.14", + # "1.14/libiconv-1.14/srclib" + # ], + # "sources": [ "1.14/libiconv-1.14/tests/genutf8.c" ], + # "dependencies": [ "iconv" ] + #} + ] + } + ] ] } diff --git a/library/libxml2/2.9.2.bru b/library/libxml2/2.9.2.bru index 20a6925..33ce6c1 100644 --- a/library/libxml2/2.9.2.bru +++ b/library/libxml2/2.9.2.bru @@ -7,7 +7,9 @@ "make_command": { # had compiler error with default --with-threads "Linux": "cd libxml2-2.9.2 ; ./configure --disable-shared --without-threads --without-python", - "Windows": "" + "Windows": "", + "Darwin": "cd libxml2-2.9.2 ; ./configure --disable-shared --without-threads --without-python", + "iOS": "cd libxml2-2.9.2 ; ./configure --host=arm-apple-darwin --disable-shared --without-threads --without-python CXX=__BRU_XCODE__/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ CXXFLAGS='-I../opus/opus/include/ -I ../libogg-1.3.1/include/ -I../openssl-1.0.1e/include -Wno-c++11-narrowing -std=c++11 -stdlib=libc++ -arch armv7 -arch armv7s -arch arm64 -isysroot __BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS__BRU_IOS_VERSION__.sdk -fvisibility=hidden -miphoneos-version-min=6.0' CC=__BRU_XCODE__/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc CFLAGS='-I../opus/opus/include/ -I ../libogg-1.3.1/include/ -I../openssl-1.0.1e/include -Wno-c++11-narrowing -std=c++11 -stdlib=libc++ -arch armv7 -arch armv7s -arch arm64 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=6.0 -gdwarf-2 -mthumb -I/Library/iPhone/include -isysroot __BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS__BRU_IOS_VERSION__.sdk' LIBTOOL=__BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool STRIP=__BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/usr/bin/strip" }, # deps are iconv and zlib according to http://www.zlatkovic.com/libxml.en.html diff --git a/library/libxml2/2.9.2.gyp b/library/libxml2/2.9.2.gyp index 88b9c3c..32a624a 100644 --- a/library/libxml2/2.9.2.gyp +++ b/library/libxml2/2.9.2.gyp @@ -71,30 +71,37 @@ "export_dependent_settings": [ "../iconv/iconv.gyp:iconv" ] - }, - - { - "target_name": "libxml2-testSAX", - "type": "executable", - "test": {}, - "sources": [ "2.9.2/libxml2-2.9.2/testSAX.c" ], - "dependencies": [ "libxml2" ] - }, - - { - "target_name": "libxml2-testXPath", - "type": "executable", - "test": {}, - "sources": [ "2.9.2/libxml2-2.9.2/testXPath.c" ], - "dependencies": [ "libxml2" ] - }, - - { - "target_name": "libxml2-example", - "type": "executable", - "test": {}, - "sources": [ "2.9.2/libxml2-2.9.2/example/gjobread.c" ], - "dependencies": [ "libxml2" ] } + ], + "conditions": [ + ["OS!='iOS'", + { + "targets": [ + { + "target_name": "libxml2-testSAX", + "type": "executable", + "test": {}, + "sources": [ "2.9.2/libxml2-2.9.2/testSAX.c" ], + "dependencies": [ "libxml2" ] + }, + + { + "target_name": "libxml2-testXPath", + "type": "executable", + "test": {}, + "sources": [ "2.9.2/libxml2-2.9.2/testXPath.c" ], + "dependencies": [ "libxml2" ] + }, + + { + "target_name": "libxml2-example", + "type": "executable", + "test": {}, + "sources": [ "2.9.2/libxml2-2.9.2/example/gjobread.c" ], + "dependencies": [ "libxml2" ] + } + ] + } + ] ] } diff --git a/library/openssl/1.0.1j.bru b/library/openssl/1.0.1j.bru index d8bec60..6fde1c1 100644 --- a/library/openssl/1.0.1j.bru +++ b/library/openssl/1.0.1j.bru @@ -15,8 +15,9 @@ # compile with gyp. WARNING: the gyp file will not necessarily end up using # the same options ./configure had configured. TODO: revisit this process. "make_command": { - "Linux": "cd openssl-1.0.1j; ./config no-asm no-shared no-ssl2 no-ssl3 no-hw no-zlib no-threads", - + "Linux" : "cd openssl-1.0.1j; ./config no-asm no-shared no-ssl2 no-ssl3 no-hw no-zlib no-threads", + "Darwin": "cd openssl-1.0.1j; ./Configure darwin64-x86_64-cc no-asm no-shared no-ssl2 no-ssl3 no-hw no-zlib no-threads -Wno-c++11-narrowing -stdlib=libc++ -fvisibility=hidden ", + "iOS" : "cd openssl-1.0.1j; ./Configure iphoneos-cross no-asm no-shared no-ssl2 no-ssl3 no-hw no-zlib no-threads -Wno-c++11-narrowing -stdlib=libc++ -fvisibility=hidden", # Why no-asm? Because otherwise you need to install yet another # buildtool for compiling openssl (see INSTALL.W32). I'm not sure # how much performance we sacrifice by not using asm, hopefully diff --git a/library/openssl/1.0.1j.gyp b/library/openssl/1.0.1j.gyp index 84e74bd..d486b02 100644 --- a/library/openssl/1.0.1j.gyp +++ b/library/openssl/1.0.1j.gyp @@ -718,10 +718,41 @@ "-luser32.lib" ] } - }, + }], + ["OS=='mac'", { + "defines": [ + "OPENSSL_NO_EC_NISTP_64_GCC_128", + "OPENSSL_NO_GMP", + "OPENSSL_NO_JPAKE", + "OPENSSL_NO_MD2", + "OPENSSL_NO_RC5", + "OPENSSL_NO_RFC3779", + "OPENSSL_NO_SCTP", + "OPENSSL_NO_SSL2", + "OPENSSL_NO_SSL3", + "OPENSSL_NO_STORE", + "OPENSSL_NO_UNIT_TEST", + "NO_WINDOWS_BRAINDEATH" + ] + }], + ["OS=='iOS'", { + "defines": [ + "OPENSSL_NO_EC_NISTP_64_GCC_128", + "OPENSSL_NO_GMP", + "OPENSSL_NO_JPAKE", + "OPENSSL_NO_MD2", + "OPENSSL_NO_RC5", + "OPENSSL_NO_RFC3779", + "OPENSSL_NO_SCTP", + "OPENSSL_NO_SSL2", + "OPENSSL_NO_SSL3", + "OPENSSL_NO_STORE", + "OPENSSL_NO_UNIT_TEST", + "NO_WINDOWS_BRAINDEATH" + ] + }], - # OS!='win' - { + ["OS=='linux'", { "defines": [ # from Linux Makefile after ./configure "DSO_DLFCN", @@ -743,8 +774,10 @@ } }] ] - }, - + } + ], + "conditions": [ + ["OS!='iOS'", # openssl has code for many separate test executables in the /test # dir, let's build a small subset of these via gyp to verify the # correctness of link_settings specified in the openssl gyp target. @@ -798,5 +831,6 @@ # ], # "dependencies": [ "openssl" ] #} + ] ] } diff --git a/library/opus/1.1.gyp b/library/opus/1.1.gyp index b2414d2..ccf5d83 100644 --- a/library/opus/1.1.gyp +++ b/library/opus/1.1.gyp @@ -82,8 +82,13 @@ "silk", "celt" ] - }, + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + # opus has multiple tests, the encode one here is pretty slow (runs # several minutes) { @@ -121,30 +126,29 @@ "opus" ] }, - + + # test needs cmd line args, in fact it's not much of a test, it's + # doing a speexenc/speexdec equivalent, encoding pcm as opus and + # back. Format is 16bit PCM LittleEndian aka ffmpeg's s16le. + # Not much of a test, only verifies the codec won't crash/hang. + # Listen to output PCM to gauge codec quality 'manually'. + # Since the opus tar.gz doesn't include PCM files afaik we pretend + # some arbitrary file from this repo is s16le (terribly noisy :) PCM. { "target_name" : "opus_trivial_example", "type" : "executable", - - # test needs cmd line args, in fact it's not much of a test, it's - # doing a speexenc/speexdec equivalent, encoding pcm as opus and - # back. Format is 16bit PCM LittleEndian aka ffmpeg's s16le. - # Not much of a test, only verifies the codec won't crash/hang. - # Listen to output PCM to gauge codec quality 'manually'. - # Since the opus tar.gz doesn't include PCM files afaik we pretend - # some arbitrary file from this repo is s16le (terribly noisy :) PCM. "test": { "cwd": "1.1/opus-1.1", "args": ["configure", "configure.pretend.s16le.pcm"] }, - "sources" : [ "1.1/opus-1.1/doc/trivial_example.c" ], "dependencies": [ - "opus" - ] - } - + "opus" ] + } + ] + } + ] ] } diff --git a/library/rcf/2.0.1.bru b/library/rcf/2.0.1.bru index 59d2252..e0f6b6a 100644 --- a/library/rcf/2.0.1.bru +++ b/library/rcf/2.0.1.bru @@ -1,6 +1,9 @@ { "homepage": "http://www.deltavsoft.com/RCF.html", - "url": "http://www.deltavsoft.com/downloads/RCF-2.0.1.101.tar.gz", + "url": [ + "http://www.deltavsoft.com/downloads/RCF-2.0.1.101.tar.gz", + "file://RCF-2.0.1.101-config.tar.gz" + ], "module": "rcf", "version": "2.0.1", "dependencies": { diff --git a/library/sndfile/1.0.25.bru b/library/sndfile/1.0.25.bru index b53ed50..8cc8ed1 100644 --- a/library/sndfile/1.0.25.bru +++ b/library/sndfile/1.0.25.bru @@ -28,7 +28,9 @@ # Compare with the opus build that uses 100% gyp, or the speex build # which uses a minimal tar.gz containing captured ./configure output, or # the openssl build which uses configure+make. - "Linux": "cd libsndfile-1.0.25; ./configure --disable-shared --disable-external-libs", + "Linux": "cd libsndfile-1.0.25; ./configure --disable-shared --disable-external-libs", + "Darwin": "cd libsndfile-1.0.25; ./configure --disable-shared --disable-external-libs", + "iOS" : "cd libsndfile-1.0.25; ./configure --host=arm-apple-darwin CXX=__BRU_XCODE__/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ CXXFLAGS='-Wno-c++11-narrowing -std=c++11 -stdlib=libc++ -arch armv7 -arch armv7s -arch arm64 -isysroot __BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS__BRU_IOS_VERSION__.sdk -fvisibility=hidden -miphoneos-version-min=6.0' CC=__BRU_XCODE__/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc CFLAGS='-Wno-c++11-narrowing -std=c++11 -stdlib=libc++ -arch armv7 -arch armv7s -arch arm64 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=6.0 -gdwarf-2 -mthumb -I/Library/iPhone/include -isysroot __BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS__BRU_IOS_VERSION__.sdk' LIBTOOL=__BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool STRIP=__BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/usr/bin/strip", # About compiling on Windows: # http://www.mega-nerd.com/libsndfile/win32.html says msvc is not diff --git a/library/sndfile/1.0.25.gyp b/library/sndfile/1.0.25.gyp index 195c3cf..6e8ff63 100644 --- a/library/sndfile/1.0.25.gyp +++ b/library/sndfile/1.0.25.gyp @@ -79,8 +79,11 @@ "1.0.25/libsndfile-1.0.25/src" ] } - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "sndfile-ulaw-test", "type": "executable", @@ -91,8 +94,10 @@ "1.0.25/libsndfile-1.0.25/tests/ulaw_test.c", "1.0.25/libsndfile-1.0.25/tests/utils.c" ], - "dependencies": [ "sndfile" ] - } - + "dependencies": [ "sndfile" ] + } + ] + } + ] ] } diff --git a/library/speex/1.2rc1.gyp b/library/speex/1.2rc1.gyp index 38b433d..f381671 100644 --- a/library/speex/1.2rc1.gyp +++ b/library/speex/1.2rc1.gyp @@ -43,7 +43,11 @@ "1.2rc1/speex-1.2rc1/include" ] } - }, + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ # this is one of speex's sample apps, is not exactly a unit test suite # P.S.: I can't get this to link on Windows, getting link errors @@ -76,7 +80,12 @@ "sources": [ "1.2rc1/speex-1.2rc1/libspeex/testenc.c" ], - "dependencies": [ "speex" ] - } + "dependencies": [ "speex" + + ] + } + ] + } + ] ] } diff --git a/library/speex/1.2rc2.gyp b/library/speex/1.2rc2.gyp index d9ca7ec..18338b9 100644 --- a/library/speex/1.2rc2.gyp +++ b/library/speex/1.2rc2.gyp @@ -20,10 +20,14 @@ "1.2rc2/speex-1.2rc2/include" ] } - }, + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + { + # this is one of speex's sample apps, is not exactly a unit test suite - # this is one of speex's sample apps, is not exactly a unit test suite - { "target_name": "speexenc", "type": "executable", @@ -40,7 +44,11 @@ # libspeex itself has no dependency on ogg, but this sample # app here has "../ogg/ogg.gyp:*" - ] - } + + ] + } + ] + } + ] ] } diff --git a/library/tiny-js/rev81.gyp b/library/tiny-js/rev81.gyp index bf2ea72..2d03ab9 100644 --- a/library/tiny-js/rev81.gyp +++ b/library/tiny-js/rev81.gyp @@ -16,8 +16,13 @@ "rev81/clone" ] } - }, - + } + ], + "conditions": [ + ["OS!='iOS'", { + "targets": [ + + # interactive repl { "target_name": "tiny-js-script", @@ -26,6 +31,7 @@ "dependencies": [ "tiny-js" ] }, + # must be run from rev81/clone dir { "target_name": "tiny-js-test", @@ -34,7 +40,11 @@ }, "type": "executable", "sources": [ "rev81/clone/run_tests.cpp" ], - "dependencies": [ "tiny-js" ] - } + "dependencies": [ "tiny-js" + ] + } + ] + } + ] ] } diff --git a/library/xerces/3.1.1.bru b/library/xerces/3.1.1.bru index d29ae9a..ef05194 100644 --- a/library/xerces/3.1.1.bru +++ b/library/xerces/3.1.1.bru @@ -6,6 +6,8 @@ "make_command": { # generates xercesc/util/Xerces_autoconf_config.hpp and ... "Linux": "cd xerces-c-3.1.1; ./configure --disable-shared --disable-transcoder-icu", + "Darwin": "cd xerces-c-3.1.1; ./configure --disable-shared --disable-transcoder-icu", + "iOS" : "cd xerces-c-3.1.1; ./configure --host=arm-apple-darwin --disable-shared CXX=__BRU_XCODE__/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++ CXXFLAGS='-I../opus/opus/include/ -I ../libogg-1.3.1/include/ -I../openssl-1.0.1e/include -Wno-c++11-narrowing -std=c++11 -stdlib=libc++ -arch armv7 -arch armv7s -arch arm64 -isysroot __BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS__BRU_IOS_VERSION__.sdk -fvisibility=hidden -miphoneos-version-min=6.0' CC=__BRU_XCODE__/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc CFLAGS='-I../opus/opus/include/ -I ../libogg-1.3.1/include/ -I../openssl-1.0.1e/include -Wno-c++11-narrowing -std=c++11 -stdlib=libc++ -arch armv7 -arch armv7s -arch arm64 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=6.0 -gdwarf-2 -mthumb -I/Library/iPhone/include -isysroot __BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS__BRU_IOS_VERSION__.sdk' LIBTOOL=__BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool STRIP=__BRU_XCODE__/Platforms/iPhoneOS.platform/Developer/usr/bin/strip -disable-threads", # On Windows build config 'Static Debug' or 'Static Release' in # via VC10 vcproj. The vcproj has this same copy step here: diff --git a/library/xerces/3.1.1.gyp b/library/xerces/3.1.1.gyp index fef8844..7a3e5cb 100644 --- a/library/xerces/3.1.1.gyp +++ b/library/xerces/3.1.1.gyp @@ -375,6 +375,53 @@ } }], + ["OS=='mac'", { + "defines": [ + "HAVE_CONFIG_H" + ], + "sources": [ + "3.1.1/xerces-c-3.1.1/src/stricmp.c", + "3.1.1/xerces-c-3.1.1/src/strnicmp.c", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/FileManagers/PosixFileMgr.cpp", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/MutexManagers/PosixMutexMgr.cpp", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Curl/CurlNetAccessor.cpp", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp" + ], + "direct_dependent_settings": { + "xcode_settings": { + "OTHER_LDFLAGS" : [ "-lpthread", + "-lcurl", + "-framework CoreFoundation", + "-framework CoreServices" + ] + } + } + }], + ["OS=='iOS'", { + "defines": [ + "HAVE_CONFIG_H" + ], + "sources": [ + "3.1.1/xerces-c-3.1.1/src/stricmp.c", + "3.1.1/xerces-c-3.1.1/src/strnicmp.c", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/FileManagers/PosixFileMgr.cpp", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/MutexManagers/NoThreadMutexMgr.cpp", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp", + "3.1.1/xerces-c-3.1.1/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp" + ], + "direct_dependent_settings": { + "xcode_settings": { + "OTHER_LDFLAGS" : [ "-lpthread", + "-lcurl", + "-framework CoreFoundation" + ] + } + } + }], + + ["OS=='linux'", { "defines": [ "HAVE_CONFIG_H" @@ -397,10 +444,13 @@ ] } }] - ] - }, - + } + ], + + "conditions": [ + ["OS!='iOS'", { + "targets": [ { "target_name": "xerces_sample_PParse", "type": "executable", @@ -408,10 +458,15 @@ "cwd": "3.1.1/xerces-c-3.1.1/samples", "args": [ "data/personal.xml" ] }, - "sources": [ "3.1.1/xerces-c-3.1.1/samples/src/PParse/*.cpp" ], + "sources": [ "3.1.1/xerces-c-3.1.1/samples/src/PParse/PParse.cpp", + "3.1.1/xerces-c-3.1.1/samples/src/PParse/PParseHandlers.cpp" + ], "dependencies": [ "xerces" ] } + + ] + }] ] } diff --git a/library/zlib/1.2.8.bru b/library/zlib/1.2.8.bru index e3ca8cb..ddd5827 100644 --- a/library/zlib/1.2.8.bru +++ b/library/zlib/1.2.8.bru @@ -1,6 +1,9 @@ { "homepage": "http://www.zlib.net/", - "url": "http://zlib.net/zlib-1.2.8.tar.gz", + "url": [ + "http://zlib.net/zlib-1.2.8.tar.gz", + "file://zlib-1.2.8-config.tar.gz" + ], "md5": "44d667c142d7cda120332623eab69f40", "module": "zlib", "version": "1.2.8" diff --git a/library/zlib/1.2.8.gyp b/library/zlib/1.2.8.gyp index 596d120..48b35fa 100644 --- a/library/zlib/1.2.8.gyp +++ b/library/zlib/1.2.8.gyp @@ -39,7 +39,10 @@ "1.2.8/zlib-1.2.8/include" ] } - }, + } + ], + "conditions": [ + ["OS!='iOS'", # this is one of zlib's tests { @@ -54,5 +57,5 @@ # there's also a minigzip in the test dir, but that's more of an # interactive test, I only care about automated tests here - ] + ]] } diff --git a/library/zlib/zlib-1.2.8-config.tar.gz b/library/zlib/zlib-1.2.8-config.tar.gz new file mode 100644 index 0000000..c90f0e5 Binary files /dev/null and b/library/zlib/zlib-1.2.8-config.tar.gz differ