X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=blobdiff_plain;f=CMakeLists.txt;h=59fba73805356ac8808ab569f7d3e18e60f224f9;hp=0709be1e83c15f27147c9aa17c305757849e4f48;hb=HEAD;hpb=4a05fff74d9eb7b691b872869de924a5c77b9727 diff --git a/CMakeLists.txt b/CMakeLists.txt index 0709be1..59fba73 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,114 @@ PROJECT(mussa) ENABLE_TESTING() +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 + "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} ) -# debug it! -SET (CXX_FLAGS "-g") # 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( gui ) 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) +