Reorder libraries for win32
[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 # include packages we depend on
15 FIND_PACKAGE(Qt4)
16 SET(QT_USE_QTOPENGL 1)
17 IF(QT_QTASSISTANT_FOUND)
18   SET(QT_USE_QTNETWORK 1)
19   SET(QT_USE_QTASSISTANT 1)
20 ENDIF(QT_QTASSISTANT_FOUND)
21 INCLUDE( ${QT_USE_FILE} )
22 FIND_PACKAGE(OpenGL)
23 FIND_PACKAGE(Boost)
24 FIND_PACKAGE(PythonLibs)
25
26 INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} 
27                     ${QT_INCLUDES}
28                     ${BOOST_INCLUDE_DIR} )
29
30
31 # all of our source files al relative to the root of our project
32 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
33 ADD_SUBDIRECTORY( doc )
34 ADD_SUBDIRECTORY( alg )
35 ADD_SUBDIRECTORY( qui )
36 ADD_SUBDIRECTORY( py )
37
38 SET(MAIN_SOURCES
39       qui/mussagl.cpp)
40
41 ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
42
43
44 SET(PYTHON_CFLAGS "-DUSE_PYTHON")
45
46 # For windows you need to go from library with the most dependencies
47 # to the library with the least dependencies -diane
48 TARGET_LINK_LIBRARIES(mussagl 
49                         mussa_qui
50                         mussa_py
51                         mussa_core
52                         ${QT_LIBRARIES}
53                         ${BOOST_PROGRAM_OPTIONS_LIBRARY}
54                         ${BOOST_FILESYSTEM_LIBRARY}
55                       )
56
57 GET_MUSSA_COMPILE_FLAGS(MAIN_CFLAGS)
58 GET_MUSSA_LINK_FLAGS(MAIN_LDFLAGS)
59
60 SET_SOURCE_FILES_PROPERTIES(
61   ${MAIN_SOURCES}
62   PROPERTIES
63   COMPILE_FLAGS "${MAIN_CFLAGS} ${PYTHON_CFLAGS}"
64 )
65 SET_TARGET_PROPERTIES(
66   mussagl PROPERTIES
67   COMPILE_FLAGS "${MAIN_CFLAGS}"
68   LINK_FLAGS "${MAIN_LDFLAGS}"
69 )
70
71 # we need Cocoa in order to find where our base directory is (AKA bundle)
72 IF(APPLE)
73   SET(COCOA_LIBRARY "-framework Cocoa")
74   TARGET_LINK_LIBRARIES(mussagl ${COCOA_LIBRARY})
75   SET(MACOSX_BUNDLE_BUNDLE_NAME "Mussa")
76   SET(MACOSX_BUNDLE_LONG_VERSION_STRING "Mussa Copyright 2004-2006 California Institute of Technology")
77   SET(MACOSX_BUNDLE_COPYRIGHT "Copyright 2004-2006 California Institute of Technology")
78   SET(MACOSX_BUNDLE_ICON_FILE "mussa")
79
80   SET(APP_DIR ${CMAKE_BINARY_DIR}/mussagl.app/Contents)
81   SET(RESOURCE_DIR ${APP_DIR}/Resources})
82
83   ADD_CUSTOM_TARGET(mussa.icns ALL
84                     cmake -E copy_directory ${CMAKE_SOURCE_DIR}/icons/osx
85                                             ${APP_DIR}
86                    )
87 ENDIF(APPLE)
88
89