ask python what libraries we need to link with
authorDiane Trout <diane@caltech.edu>
Mon, 18 Sep 2006 22:26:11 +0000 (22:26 +0000)
committerDiane Trout <diane@caltech.edu>
Mon, 18 Sep 2006 22:26:11 +0000 (22:26 +0000)
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
makelib/Platform.cmake
makelib/python_config_var.py [new file with mode: 0644]
py/test/CMakeLists.txt

index f7b9d7d44e5af8b033bd48f0507efce37097c977..ef3303a21a2fb54d61c143d3b654635e651c611e 100644 (file)
@@ -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)
index 654d373eb4ad19869f862a3b1d702aa4af95accd..d1f326b800e475ec6cd9f20e19a2abbb10820e6e 100644 (file)
@@ -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 (file)
index 0000000..6cb3e74
--- /dev/null
@@ -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)
index e2e3896b24c6132c70d44eea0e62606e4c0c01f3..b54468b44c4b1c53688ddc036384149cb5d4b7de 100644 (file)
@@ -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(