Update mussa to build on ubuntu 10.04 with qt 4.6.2 +boost 1.40.0.1
[mussa.git] / CMakeLists.txt
index 529e66a0619836d5110401bbcaf4d1b655dc3463..59fba73805356ac8808ab569f7d3e18e60f224f9 100644 (file)
 PROJECT(mussa)
 
 ENABLE_TESTING()
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 # try to include our cmake modules
-SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR})
+SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/makelib)
+INCLUDE(Platform)
+
+IF(NOT CMAKE_BUILD_TYPE)
+  SET (CMAKE_BUILD_TYPE Debug CACHE STRING
+      "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
+      FORCE)
+ENDIF(NOT CMAKE_BUILD_TYPE)
+
+# include packages we depend on
+FIND_PACKAGE(Qt4)
+SET(QT_USE_QTOPENGL 1)
+IF(QT_QTASSISTANT_FOUND)
+  SET(QT_USE_QTNETWORK 1)
+  SET(QT_USE_QTASSISTANT 1)
+ENDIF(QT_QTASSISTANT_FOUND)
+INCLUDE( ${QT_USE_FILE} )
+FIND_PACKAGE(OpenGL)
+set(Boost_USE_STATIC_LIBS   OFF)
+set(Boost_USE_MULTITHREADED ON)
+FIND_PACKAGE(Boost 1.40 REQUIRED filesystem serialization system program_options )
+FIND_PACKAGE(Boost 1.40 COMPONENTS python)
+FIND_PACKAGE(PythonLibs)
+
+SET(USE_PYTHON 0 CACHE BOOL
+    "Build mussa executable linked to python interpreter")
+
+INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} 
+                    ${QT_INCLUDES}
+                    ${Boost_INCLUDE_DIR} )
+
 
 # all of our source files al relative to the root of our project
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
+ADD_SUBDIRECTORY( doc )
+IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/paircomp) 
+  MESSAGE(STATUS "Found paircomp")
+  SET(USE_PAIRCOMP 1)
+  ADD_SUBDIRECTORY( paircomp )
+ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/paircomp)
 ADD_SUBDIRECTORY( alg )
 ADD_SUBDIRECTORY( qui )
+ADD_SUBDIRECTORY( py )
+
+SET(MAIN_SOURCES
+      qui/mussagl.cpp)
+
+ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
+
+# For windows you need to go from library with the most dependencies
+# to the library with the least dependencies -diane
+TARGET_LINK_LIBRARIES(mussagl 
+                        mussa_qui
+                        mussa_core
+                        ${QT_LIBRARIES}
+                        # Including QT_LIBS twice is for dealing with linking dependancies
+                        # related to Qt Assistant Client on windows
+                        ${QT_LIBRARIES}  
+                        ${Boost_FILESYSTEM_LIBRARY}
+                        ${Boost_SERIALIZATION_LIBRARY}
+                        ${Boost_SYSTEM_LIBRARY}
+                        ${Boost_PROGRAM_OPTIONS_LIBRARY}
+                        ${OPENGL_gl_LIBRARY}
+                      )
+
+IF(USE_PYTHON)
+  SET(PYTHON_CFLAGS "-DUSE_PYTHON")
+  TARGET_LINK_LIBRARIES(mussagl
+        mussa_py
+        ${QT_LIBRARIES}
+#mussaqui_py
+        ${Boost_PYTHON_LIBRARY}
+        ${PYTHON_LIBRARIES}
+        ${PYTHON_LINK_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.icns")
+
+  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)
+
+