From 6eafc1a220d4ae8442189c1051ff99844efbfd53 Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Mon, 18 Sep 2006 22:26:11 +0000 Subject: [PATCH] ask python what libraries we need to link with ticket:125 (hopefully fixes) distutils has some nice variables that will tell us what system libraries we need to link with. This patch includes a small python wrapper that makes it easy for cmake to extract that information. --- CMakeLists.txt | 2 +- makelib/Platform.cmake | 16 +++++++++++++++- makelib/python_config_var.py | 24 ++++++++++++++++++++++++ py/test/CMakeLists.txt | 2 +- 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 makelib/python_config_var.py diff --git a/CMakeLists.txt b/CMakeLists.txt index f7b9d7d..ef3303a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,8 +55,8 @@ TARGET_LINK_LIBRARIES(mussagl ${BOOST_PROGRAM_OPTIONS_LIBRARY} ${BOOST_PYTHON_LIBRARY} ${PYTHON_LIBRARIES} + ${PYTHON_LINK_LIBRARIES} ${OPENGL_gl_LIBRARY} - util ) GET_MUSSA_COMPILE_FLAGS(MAIN_CFLAGS) diff --git a/makelib/Platform.cmake b/makelib/Platform.cmake index 654d373..d1f326b 100644 --- a/makelib/Platform.cmake +++ b/makelib/Platform.cmake @@ -2,6 +2,20 @@ # Defines: # +# figure out Python flags +FIND_PACKAGE(PythonInterp) +IF(PYTHONINTERP_FOUND) + EXEC_PROGRAM(${PYTHON_EXECUTABLE} + ARGS ${CMAKE_SOURCE_DIR}/makelib/python_config_var.py LIBS + OUTPUT_VARIABLE PYTHON_LINK_LIBRARIES ) + EXEC_PROGRAM(${PYTHON_EXECUTABLE} + ARGS ${CMAKE_SOURCE_DIR}/makelib/python_config_var.py LINKFORSTATIC + OUTPUT_VARIABLE PYTHON_LINKFORSTATIC ) +ELSE(PYTHONINTERP_FOUND) + SET(PYTHON_EXTRA_LIBRARIES "") + SET(PYTHON_LINKFORSTATIC "") +ENDIF(PYTHONINTERP_FOUND) + MACRO(GET_MUSSA_COMPILE_FLAGS return) SET(return "") IF(APPLE) @@ -13,7 +27,7 @@ MACRO(GET_MUSSA_COMPILE_FLAGS return) ENDMACRO(GET_MUSSA_COMPILE_FLAGS) MACRO(GET_MUSSA_LINK_FLAGS return) - SET(${return} "") + SET(${return} "") IF(APPLE) SET(${return} ${${return}} diff --git a/makelib/python_config_var.py b/makelib/python_config_var.py new file mode 100644 index 0000000..6cb3e74 --- /dev/null +++ b/makelib/python_config_var.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +import sys +import distutils.sysconfig + +def get_config_var(name): + """Return distutils config var name""" + return distutils.sysconfig.get_config_var(name) + +def main(args=None): + """Print specified distutils config var name + + e.g. 'LIBS', 'LINKFORSTATIC'. + """ + if args is None: + args = sys.argv + + if len(args) != 2: + print "usage: %s ARG_NAME" % (args[0]) + else: + var = get_config_var(args[1]) + print var + +if __name__ == "__main__": + main(sys.argv) diff --git a/py/test/CMakeLists.txt b/py/test/CMakeLists.txt index e2e3896..b54468b 100644 --- a/py/test/CMakeLists.txt +++ b/py/test/CMakeLists.txt @@ -28,8 +28,8 @@ TARGET_LINK_LIBRARIES(mussa_python_test ${BOOST_SERIALIZATION_LIBRARY} ${BOOST_PYTHON_LIBRARY} ${PYTHON_LIBRARIES} + ${PYTHON_LINK_LIBRARIES} ${BOOST_UNIT_TEST_LIBRARY} - util ) SET_TARGET_PROPERTIES( -- 2.30.2