aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-02-08 16:14:01 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-02-08 16:14:01 -0800
commit6c21c614aac4500a74b78b91cbbe12dcd22f6af0 (patch)
tree07efa0e2f3691bddb8006dae74f4ad1480f7606b
parentd0d5db0a361551f0e2bf557874cccbf88ec2a12f (diff)
parent70c914b0f44f3217adf5615b2168aa28db7d8857 (diff)
Merge pull request #227 from ehsan/cmake_fixes
Fix the cmake handling
-rw-r--r--tools/shared.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/shared.py b/tools/shared.py
index 45400581..7f633318 100644
--- a/tools/shared.py
+++ b/tools/shared.py
@@ -367,13 +367,17 @@ class Building:
return env
@staticmethod
- def handle_CMake_toolchain(args):
+ def handle_CMake_toolchain(args, env):
CMakeToolchain = '''# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Linux)
# which C and C++ compiler to use
SET(CMAKE_C_COMPILER $EMSCRIPTEN_ROOT/emcc)
SET(CMAKE_CXX_COMPILER $EMSCRIPTEN_ROOT/em++)
+SET(CMAKE_AR $EMSCRIPTEN_ROOT/emar)
+SET(CMAKE_RANLIB $EMSCRIPTEN_ROOT/emranlib)
+SET(CMAKE_C_FLAGS $CFLAGS)
+SET(CMAKE_CXX_FLAGS $CXXFLAGS)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH $EMSCRIPTEN_ROOT/system/include )
@@ -384,7 +388,10 @@ SET(CMAKE_FIND_ROOT_PATH $EMSCRIPTEN_ROOT/system/include )
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
-set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)'''.replace('$EMSCRIPTEN_ROOT', path_from_root(''))
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' \
+ .replace('$EMSCRIPTEN_ROOT', path_from_root('')) \
+ .replace('$CFLAGS', env['CFLAGS']) \
+ .replace('$CXXFLAGS', env['CFLAGS'])
toolchainFile = mkstemp(suffix='.txt')[1]
open(toolchainFile, 'w').write(CMakeToolchain)
args.append('-DCMAKE_TOOLCHAIN_FILE=%s' % os.path.abspath(toolchainFile))
@@ -395,8 +402,8 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)'''.replace('$EMSCRIPTEN_ROOT', path_
if env is None:
env = Building.get_building_env()
env['EMMAKEN_JUST_CONFIGURE'] = '1'
- if 'cmake' in sys.argv[0]:
- args = Building.handle_CMake_toolchain(args)
+ if 'cmake' in args[0]:
+ args = Building.handle_CMake_toolchain(args, env)
Popen(args, stdout=stdout, stderr=stderr, env=env).communicate()[0]
del env['EMMAKEN_JUST_CONFIGURE']