Use Qt4.2 openUrl to show manual
[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 INCLUDE(Platform)
8
9 IF(NOT CMAKE_BUILD_TYPE)
10   SET (CMAKE_BUILD_TYPE Debug CACHE STRING
11       "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
12       FORCE)
13 ENDIF(NOT CMAKE_BUILD_TYPE)
14
15 # include packages we depend on
16 FIND_PACKAGE(Qt4)
17 SET(QT_USE_QTOPENGL 1)
18 IF(QT_QTASSISTANT_FOUND)
19   SET(QT_USE_QTNETWORK 1)
20   SET(QT_USE_QTASSISTANT 1)
21 ENDIF(QT_QTASSISTANT_FOUND)
22 INCLUDE( ${QT_USE_FILE} )
23 FIND_PACKAGE(OpenGL)
24 FIND_PACKAGE(Boost)
25 FIND_PACKAGE(PythonLibs)
26
27 INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} 
28                     ${QT_INCLUDES}
29                     ${BOOST_INCLUDE_DIR} )
30
31
32 # all of our source files al relative to the root of our project
33 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
34 ADD_SUBDIRECTORY( doc )
35 ADD_SUBDIRECTORY( alg )
36 ADD_SUBDIRECTORY( qui )
37 ADD_SUBDIRECTORY( py )
38
39 SET(MAIN_SOURCES
40       qui/mussagl.cpp)
41
42 ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
43
44 # For windows you need to go from library with the most dependencies
45 # to the library with the least dependencies -diane
46 TARGET_LINK_LIBRARIES(mussagl 
47                         mussa_qui
48                         mussa_core
49                         ${QT_LIBRARIES}
50                         # Including QT_LIBS twice is for dealing with linking dependancies
51                         # related to Qt Assistant Client on windows
52                         ${QT_LIBRARIES}  
53                         ${BOOST_FILESYSTEM_LIBRARY}
54                         ${BOOST_SERIALIZATION_LIBRARY}
55                         ${BOOST_PROGRAM_OPTIONS_LIBRARY}
56                         ${OPENGL_gl_LIBRARY}
57                       )
58
59 IF(USE_PYTHON)
60   SET(PYTHON_CFLAGS "-DUSE_PYTHON")
61   TARGET_LINK_LIBRARIES(mussagl
62         mussa_py
63         ${BOOST_PYTHON_LIBRARY}
64         ${PYTHON_LIBRARIES}
65         ${PYTHON_LINK_LIBRARIES})
66 ENDIF(USE_PYTHON)
67
68
69 GET_MUSSA_COMPILE_FLAGS(MAIN_CFLAGS)
70 GET_MUSSA_LINK_FLAGS(MAIN_LDFLAGS)
71
72 SET_SOURCE_FILES_PROPERTIES(
73   ${MAIN_SOURCES}
74   PROPERTIES
75   COMPILE_FLAGS "${MAIN_CFLAGS} ${PYTHON_CFLAGS}"
76 )
77 SET_TARGET_PROPERTIES(
78   mussagl PROPERTIES
79   COMPILE_FLAGS "${MAIN_CFLAGS}"
80   LINK_FLAGS "${MAIN_LDFLAGS}"
81 )
82
83 # we need Cocoa in order to find where our base directory is (AKA bundle)
84 IF(APPLE)
85   SET(COCOA_LIBRARY "-framework Cocoa")
86   TARGET_LINK_LIBRARIES(mussagl ${COCOA_LIBRARY})
87   SET(MACOSX_BUNDLE_BUNDLE_NAME "Mussa")
88   SET(MACOSX_BUNDLE_LONG_VERSION_STRING "Mussa Copyright 2004-2006 California Institute of Technology")
89   SET(MACOSX_BUNDLE_COPYRIGHT "Copyright 2004-2006 California Institute of Technology")
90   SET(MACOSX_BUNDLE_ICON_FILE "mussa.icns")
91
92   SET(APP_DIR ${CMAKE_BINARY_DIR}/mussagl.app/Contents)
93   SET(RESOURCE_DIR ${APP_DIR}/Resources})
94
95   ADD_CUSTOM_TARGET(mussa.icns ALL
96                     cmake -E copy_directory ${CMAKE_SOURCE_DIR}/icons/osx
97                                             ${APP_DIR}
98                    )
99 ENDIF(APPLE)
100
101