summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-10-20 17:55:49 +0200
committerKonstantin Käfer <mail@kkaefer.com>2014-10-20 17:55:49 +0200
commit5a87fb337dc034c6d96ff74d20c5c257c0a65b77 (patch)
treeae6b75779c2dbd868058fb643413669050ce46f0 /configure
parent6bd63c565eee2a41fdd5ccbc248426bd469e1809 (diff)
downloadqtlocation-mapboxgl-5a87fb337dc034c6d96ff74d20c5c257c0a65b77.tar.gz
first attempt at using mason to install packages
[skip ci]
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure179
1 files changed, 45 insertions, 134 deletions
diff --git a/configure b/configure
index b92f97758b..d8a5e08ed8 100755
--- a/configure
+++ b/configure
@@ -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