PROJECT(mussa)
ENABLE_TESTING()
-CMAKE_MINIMUM_REQUIRED(VERSION 2.2)
-
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# try to include our cmake modules
SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/makelib)
+INCLUDE(Platform)
IF(NOT CMAKE_BUILD_TYPE)
SET (CMAKE_BUILD_TYPE Debug CACHE STRING
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)
+
+