diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2014-10-20 17:55:49 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2014-10-20 17:55:49 +0200 |
commit | 5a87fb337dc034c6d96ff74d20c5c257c0a65b77 (patch) | |
tree | ae6b75779c2dbd868058fb643413669050ce46f0 /configure | |
parent | 6bd63c565eee2a41fdd5ccbc248426bd469e1809 (diff) | |
download | qtlocation-mapboxgl-5a87fb337dc034c6d96ff74d20c5c257c0a65b77.tar.gz |
first attempt at using mason to install packages
[skip ci]
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 179 |
1 files changed, 45 insertions, 134 deletions
@@ -1,144 +1,55 @@ -#!/usr/bin/env python -import optparse -import os -import pprint -import re -import shlex -import subprocess -import sys +#!/usr/bin/env bash -root_dir = os.path.dirname(__file__) +set -e +set -o pipefail -# parse our options -parser = optparse.OptionParser() +. ~/.nvm/nvm.sh +nvm use 0.10 -parser.add_option("--debug", - action="store_true", - dest="debug", - help="Also build debug build") +LIBCURL_VERSION=system +GLFW_VERSION=a21f2377 +LIBPNG_VERSION=1.6.13 +SQLITE_VERSION=system +LIBUV_VERSION=0.10.28 -parser.add_option("--node", - action="store", - dest="node", - help="Name of the node executable (defaults to node)") +mason install libcurl ${LIBCURL_VERSION} +mason install glfw ${GLFW_VERSION} +mason install libpng ${LIBPNG_VERSION} +mason install sqlite ${SQLITE_VERSION} +mason install libuv ${LIBUV_VERSION} -parser.add_option("--npm", - action="store", - dest="npm", - help="Name of the npm executable (defaults to npm)") +BOOST_ROOT=/usr +if [ -d '/usr/local/boost' ]; then BOOST_ROOT='/usr/local' ; fi -parser.add_option("--pkg-config-root", - action="store", - dest="pkgconfig_root", - help="Path to pkg-config directory") - -parser.add_option("--boost", - action="store", - dest="boost_root", - help="Path to boost (defaults to /usr/local)") - -(options, args) = parser.parse_args() - -def pkg_config(pkg, pkgconfig_root): - env = os.environ.copy() - if pkgconfig_root: - env["PKG_CONFIG_PATH"] = pkgconfig_root - env["PKG_CONFIG_ALLOW_SYSTEM_CFLAGS"] = "1" - env["PKG_CONFIG_ALLOW_SYSTEM_LIBS"] = "1" - cmd = subprocess.Popen(['pkg-config', '--static', '--libs', pkg], stdout=subprocess.PIPE, env=env) - libs, ret = cmd.communicate() - if (ret): return None - - cmd = subprocess.Popen(['pkg-config', '--static', '--cflags', pkg], stdout=subprocess.PIPE, env=env) - cflags, ret = cmd.communicate() - if (ret): return None - - return (libs, cflags) - -def configure_mbgl(o): - if options.boost_root: - o['variables']['boost_root'] = options.boost_root - else: - o['variables']['boost_root'] = '/usr/local' - if options.node: - o['variables']['node'] = options.node - else: - o['variables']['node'] = 'node' - if options.npm: - o['variables']['npm'] = options.npm - else: - o['variables']['npm'] = 'npm' - o['target_defaults']['default_configuration'] = 'Debug' if options.debug else 'Release' - - -def fix_frameworks(libs): - # don't split "-framework Foo" - return re.split('(?<!-framework)\s+', libs.strip()) - -def configure_glfw3(o): - ret = pkg_config('glfw3', options.pkgconfig_root) - if not ret: - sys.stderr.write('could not find glfw3 with pkg-config') - sys.exit(-1) - o['variables']['glfw3_libraries'] = fix_frameworks(ret[0]) - o['variables']['glfw3_cflags'] = ret[1].split() - -def configure_uv(o): - ret = pkg_config('libuv', options.pkgconfig_root) - if not ret: - sys.stderr.write('could not find uv with pkg-config') - sys.exit(-1) - o['variables']['uv_libraries'] = ret[0].split() - o['variables']['uv_cflags'] = ret[1].split() - -def configure_png(o): - ret = pkg_config('libpng', options.pkgconfig_root) - if not ret: - sys.stderr.write('could not find png with pkg-config') - sys.exit(-1) - o['variables']['png_libraries'] = ret[0].split() - o['variables']['png_cflags'] = ret[1].split() - -def configure_curl(o): - ret = pkg_config('libcurl', options.pkgconfig_root) - if not ret: - sys.stderr.write('could not find curl with pkg-config') - sys.exit(-1) - o['variables']['curl_libraries'] = ret[0].split() - o['variables']['curl_cflags'] = ret[1].split() - -def configure_sqlite3(o): - ret = pkg_config('sqlite3', options.pkgconfig_root) - if not ret: - sys.stderr.write('could not find sqlite3 with pkg-config') - sys.exit(-1) - o['variables']['sqlite3_libraries'] = ret[0].split() - o['variables']['sqlite3_cflags'] = ret[1].split() - -def write(filename, data): - filename = os.path.join(root_dir, filename) - print "creating ", filename - f = open(filename, 'w+') - f.write(data) +function quote_flags { + python -c "import sys, re; print re.split('(?<!-framework)\s+', ' '.join(sys.argv[1:]))" "$@" +} -output = { - 'variables': { 'python': sys.executable }, - 'target_defaults' : { - 'include_dirs': [], - 'libraries': [], +echo "# Do not edit. Generated by the configure script. +{ + 'target_defaults': { + 'cflags': [], + 'default_configuration': 'Release', 'defines': [], - 'cflags': [] + 'include_dirs': [], + 'libraries': [] + }, + 'variables': { + 'node': '$(which node)', + 'npm': '$(which npm)', + 'python': '$(which python)', + 'boost_root': '/usr/local', + 'curl_cflags': $(quote_flags $(mason cflags libcurl ${LIBCURL_VERSION})), + 'curl_libraries': $(quote_flags $(mason ldflags libcurl ${LIBCURL_VERSION})), + 'glfw3_cflags': $(quote_flags $(mason cflags glfw ${GLFW_VERSION})), + 'glfw3_libraries': $(quote_flags $(mason ldflags glfw ${GLFW_VERSION})), + 'png_cflags': $(quote_flags $(mason cflags libpng ${LIBPNG_VERSION})), + 'png_libraries': $(quote_flags $(mason ldflags libpng ${LIBPNG_VERSION})), + 'sqlite3_cflags': $(quote_flags $(mason cflags sqlite ${SQLITE_VERSION})), + 'sqlite3_libraries': $(quote_flags $(mason ldflags sqlite ${SQLITE_VERSION})), + 'uv_cflags': $(quote_flags $(mason cflags libuv ${LIBUV_VERSION})), + 'uv_libraries': $(quote_flags $(mason ldflags libuv ${LIBUV_VERSION})), } -} - -if __name__ == '__main__': - configure_mbgl(output) - configure_glfw3(output) - configure_uv(output) - configure_png(output) - configure_curl(output) - configure_sqlite3(output) - pprint.pprint(output, indent=2) +}" > config.gypi - write('config.gypi', "# Do not edit. Generated by the configure script.\n" + - pprint.pformat(output, indent=2) + "\n") +cat config.gypi |