Since building with cmake 2.2 didn't work up the required version
[mussa.git] / CMakeLists.txt
1 PROJECT(mussa)
2
3 ENABLE_TESTING()
4 CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
5 # try to include our cmake modules
6 SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/makelib)
7
8 IF(NOT CMAKE_BUILD_TYPE)
9   SET (CMAKE_BUILD_TYPE Debug CACHE STRING
10       "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
11       FORCE)
12 ENDIF(NOT CMAKE_BUILD_TYPE)
13
14 # configure python
15 SET(USE_PYTHON 1)
16
17 # include packages we depend on
18 FIND_PACKAGE(Qt4)
19 SET(QT_USE_QTOPENGL 1)
20 IF(QT_QTASSISTANT_FOUND)
21   SET(QT_USE_QTNETWORK 1)
22   SET(QT_USE_QTASSISTANT 1)
23 ENDIF(QT_QTASSISTANT_FOUND)
24 INCLUDE( ${QT_USE_FILE} )
25 FIND_PACKAGE(OpenGL)
26 FIND_PACKAGE(Boost)
27 FIND_PACKAGE(PythonLibs)
28
29 # all of our source files al relative to the root of our project
30 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
31 ADD_SUBDIRECTORY( doc )
32 ADD_SUBDIRECTORY( alg )
33 ADD_SUBDIRECTORY( qui )
34 ADD_SUBDIRECTORY( py )
35
36 SET(MAIN_SOURCES
37       qui/mussagl.cpp)
38
39 ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
40
41 TARGET_LINK_LIBRARIES(mussagl 
42                         mussa_core
43                         mussa_qui
44                         ${QT_LIBRARIES}
45                         ${OPENGL_gl_LIBRARY}
46                         ${BOOST_PROGRAM_OPTIONS_LIBRARY}
47                         ${BOOST_FILESYSTEM_LIBRARY}
48                       )
49
50 IF(USE_PYTHON)
51   INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
52   SET(PYTHON_CFLAGS "-DUSE_PYTHON")
53   TARGET_LINK_LIBRARIES(mussagl
54                           mussa_py
55                           ${BOOST_PYTHON_LIBRARY}
56                           optimized ${PYTHON_LIBRARIES}
57                           debug ${PYTHON_DEBUG_LIBRARIES}
58                         )
59 ENDIF(USE_PYTHON)
60
61 GET_MUSSA_COMPILE_FLAGS(MAIN_CFLAGS)
62 GET_MUSSA_LINK_FLAGS(MAIN_LDFLAGS)
63
64 SET_SOURCE_FILES_PROPERTIES(
65   ${MAIN_SOURCES}
66   PROPERTIES
67   COMPILE_FLAGS "${MAIN_CFLAGS} ${PYTHON_CFLAGS}"
68 )
69 SET_TARGET_PROPERTIES(
70   mussagl PROPERTIES
71   COMPILE_FLAGS "${MAIN_CFLAGS}"
72   LINK_FLAGS "${MAIN_LDFLAGS}"
73 )
74
75 # we need Cocoa in order to find where our base directory is (AKA bundle)
76 IF(APPLE)
77   SET(COCOA_LIBRARY "-framework Cocoa")
78   TARGET_LINK_LIBRARIES(mussagl ${COCOA_LIBRARY})
79   SET(MACOSX_BUNDLE_BUNDLE_NAME "Mussa")
80   SET(MACOSX_BUNDLE_LONG_VERSION_STRING "Mussa Copyright 2004-2006 California Institute of Technology")
81   SET(MACOSX_BUNDLE_COPYRIGHT "Copyright 2004-2006 California Institute of Technology")
82   SET(MACOSX_BUNDLE_ICON_FILE "mussa")
83
84   SET(APP_DIR ${CMAKE_BINARY_DIR}/mussagl.app/Contents)
85   SET(RESOURCE_DIR ${APP_DIR}/Resources})
86
87   ADD_CUSTOM_TARGET(mussa.icns ALL
88                     cmake -E copy_directory ${CMAKE_SOURCE_DIR}/icons/osx
89                                             ${APP_DIR}
90                    )
91 ENDIF(APPLE)
92
93