make it possible to build mussa with python
[mussa.git] / CMakeLists.txt
index e5ca03000c79ebf9c11fcfe7dc6930c78f2f9cd1..7474cec63920729e9dcdd564e0d7cf603f158b34 100644 (file)
@@ -2,7 +2,6 @@ PROJECT(mussa)
 
 ENABLE_TESTING()
 CMAKE_MINIMUM_REQUIRED(VERSION 2.2)
-
 # try to include our cmake modules
 SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/makelib)
 
@@ -12,6 +11,21 @@ IF(NOT CMAKE_BUILD_TYPE)
       FORCE)
 ENDIF(NOT CMAKE_BUILD_TYPE)
 
+# configure python
+SET(USE_PYTHON 1)
+
+# include packages we depend on
+FIND_PACKAGE(Qt4)
+SET(QT_USE_QTOPENGL 1)
+IF(QT_ASSISTANT_LIB)
+  SET(QT_USE_QTNETWORK 1)
+  SET(QT_USE_QTASSISTANT 1)
+ENDIF(QT_ASSISTANT_LIB)
+INCLUDE( ${QT_USE_FILE} )
+FIND_PACKAGE(OpenGL)
+FIND_PACKAGE(Boost)
+FIND_PACKAGE(PythonLibs)
+
 # all of our source files al relative to the root of our project
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
 ADD_SUBDIRECTORY( doc )
@@ -19,3 +33,60 @@ ADD_SUBDIRECTORY( alg )
 ADD_SUBDIRECTORY( qui )
 ADD_SUBDIRECTORY( py )
 
+SET(MAIN_SOURCES
+      qui/mussagl.cpp)
+ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
+
+TARGET_LINK_LIBRARIES(mussagl 
+                        mussa_core
+                        mussa_qui
+                        ${QT_LIBRARIES}
+                        ${OPENGL_gl_LIBRARY}
+                        ${BOOST_PROGRAM_OPTIONS_LIBRARY}
+                        ${BOOST_FILESYSTEM_LIBRARY}
+                      )
+
+IF(USE_PYTHON)
+  INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
+  SET(PYTHON_CFLAGS "-DUSE_PYTHON")
+  TARGET_LINK_LIBRARIES(mussagl
+                          mussa_py
+                          ${BOOST_PYTHON_LIBRARY}
+                          optimized ${PYTHON_LIBRARIES}
+                          debug ${PYTHON_DEBUG_LIBRARIES}
+                        )
+ENDIF(USE_PYTHON)
+
+GET_MUSSA_COMPILE_FLAGS(MAIN_CFLAGS)
+GET_MUSSA_LINK_FLAGS(MAIN_LDFLAGS)
+
+SET_SOURCE_FILES_PROPERTIES(
+  ${MAIN_SOURCES}
+  PROPERTIES
+  COMPILE_FLAGS "${MAIN_CFLAGS} ${PYTHON_CFLAGS}"
+)
+SET_TARGET_PROPERTIES(
+  mussagl PROPERTIES
+  COMPILE_FLAGS "${MAIN_CFLAGS}"
+  LINK_FLAGS "${MAIN_LDFLAGS}"
+)
+
+# we need Cocoa in order to find where our base directory is (AKA bundle)
+IF(APPLE)
+  SET(COCOA_LIBRARY "-framework Cocoa")
+  TARGET_LINK_LIBRARIES(mussagl ${COCOA_LIBRARY})
+  SET(MACOSX_BUNDLE_BUNDLE_NAME "Mussa")
+  SET(MACOSX_BUNDLE_LONG_VERSION_STRING "Mussa Copyright 2004-2006 California Institute of Technology")
+  SET(MACOSX_BUNDLE_COPYRIGHT "Copyright 2004-2006 California Institute of Technology")
+  SET(MACOSX_BUNDLE_ICON_FILE "mussa")
+
+  SET(APP_DIR ${CMAKE_BINARY_DIR}/mussagl.app/Contents)
+  SET(RESOURCE_DIR ${APP_DIR}/Resources})
+
+  ADD_CUSTOM_TARGET(mussa.icns ALL
+                    cmake -E copy_directory ${CMAKE_SOURCE_DIR}/icons/osx
+                                            ${APP_DIR}
+                   )
+ENDIF(APPLE)
+
+