1
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.2)
3
########### Project name ###########
5
SET(STELLARIUM_MAJOR "0")
6
SET(STELLARIUM_MINOR "9")
7
SET(STELLARIUM_PATCH "1")
8
SET(VERSION "${STELLARIUM_MAJOR}.${STELLARIUM_MINOR}.${STELLARIUM_PATCH}")
9
SET(PACKAGE stellarium)
11
########### Main global variables ###########
12
IF(NOT CMAKE_BUILD_TYPE)
13
SET(CMAKE_BUILD_TYPE Release CACHE STRING
14
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
16
ENDIF(NOT CMAKE_BUILD_TYPE)
18
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
20
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
22
IF(UNIX AND NOT WIN32)
23
SET(CMAKE_C_FLAGS -Wall) # additional C compile flags
24
SET(CMAKE_CXX_FLAGS -Wall) # additional CPP compile flags
25
ELSE(UNIX AND NOT WIN32)
26
SET(CMAKE_C_FLAGS "-Wall -fexceptions -fident -mthreads")
27
SET(CMAKE_CXX_FLAGS "-Wall -Wsign-promo -fexceptions -fident -mthreads")
28
SET(CMAKE_EXE_LINKER_FLAGS "-Wsign-promo -fexceptions -fident -mthreads")
29
ENDIF(UNIX AND NOT WIN32)
31
# best way to get to MACOSX?
33
SET(CMAKE_INCLUDE_PATH "/usr/X11R6/include:/usr/X11R6/include/freetype2:/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include:/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include/freetype2:/sw/include:${CMAKE_INCLUDE_PATH}")
34
SET(CMAKE_LIBRARY_PATH "/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/lib:/sw/lib:${CMAKE_LIBRARY_PATH}")
35
SET(CMAKE_C_FLAGS "-fno-common -Wall -DMACOSX -I/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include -I/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include/freetype2 -L/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/lib")
36
SET(CMAKE_CXX_FLAGS "-fno-common -Wall -DMACOSX -I/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include -I/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include/freetype2 -L/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/lib")
40
########### Check headers ###########
41
INCLUDE(CheckIncludeFiles)
42
CHECK_INCLUDE_FILES( unistd.h HAVE_UNISTD_H)
43
CHECK_INCLUDE_FILES( string.h HAVE_STRING_H)
44
CHECK_INCLUDE_FILES( byteswap.h HAVE_BYTESWAP_H)
46
########### Check functions ###########
47
INCLUDE(CheckFunctionExists)
48
#toupper strcasecmp strdup putenv setlocale tzset strchr pow10 timegm
49
CHECK_FUNCTION_EXISTS(timegm HAVE_TIMEGM)
50
CHECK_FUNCTION_EXISTS(mktime HAVE_MKTIME)
51
CHECK_FUNCTION_EXISTS(tzset HAVE_TZSET)
52
CHECK_FUNCTION_EXISTS(pow10 HAVE_POW10)
53
CHECK_FUNCTION_EXISTS(setlocale HAVE_SETLOCALE)
54
CHECK_FUNCTION_EXISTS(mktime HAVE_MKTIME)
55
CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
57
########### Others ###########
58
# Define if we want to manage the main window with SDL or Qt4
59
# Note that Qt4 is required in any case anyway
63
# Activate translation with gettext
66
########### Find packages ###########
67
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
68
FIND_PACKAGE(Qt4 REQUIRED)
69
SET(QT_USE_QTOPENGL TRUE)
70
SET(QT_USE_QTSCRIPT TRUE)
71
SET(QT_USE_QTNETWORK TRUE)
72
INCLUDE(${QT_USE_FILE})
75
FIND_PACKAGE(SDL REQUIRED)
76
FIND_PACKAGE(SDL_mixer)
79
FIND_PACKAGE(SDL_mixer)
83
MESSAGE(STATUS "Found SDL_mixer. Activate sound support.")
84
SET(HAVE_SDL_SDL_MIXER_H 1)
85
ELSE(SDLMIXER_LIBRARY)
86
MESSAGE(STATUS "No sound support.")
87
SET(SDLMIXER_INCLUDE_DIR "")
88
SET(SDLMIXER_LIBRARY "")
89
ENDIF(SDLMIXER_LIBRARY)
92
FIND_PACKAGE(Iconv REQUIRED)
93
FIND_PATH(INTL_INCLUDE_DIR libintl.h
96
FIND_LIBRARY(INTL_LIBRARIES intl c
100
FIND_PACKAGE(Gettext REQUIRED)
103
FIND_PACKAGE(OpenGL REQUIRED)
104
FIND_PACKAGE(PNG REQUIRED)
105
FIND_PACKAGE(JPEG REQUIRED)
106
FIND_PACKAGE(Boost REQUIRED)
107
FIND_PACKAGE(FreeType2 REQUIRED)
109
########### Set some global variables ###########
110
IF(UNIX AND NOT WIN32)
112
SET(CMAKE_INSTALL_PREFIX "/Users/Shared/stellarium/Stellarium.app/Contents")
113
SET(INSTALL_DATADIR "${CMAKE_INSTALL_PREFIX}/Resources/data")
114
SET(INSTALL_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/Resources/locale")
116
SET(INSTALL_DATADIR ${CMAKE_INSTALL_PREFIX}/share/stellarium)
117
SET(INSTALL_LOCALEDIR ${CMAKE_INSTALL_PREFIX}/share/locale)
119
ELSE(UNIX AND NOT WIN32)
120
SET(INSTALL_DATADIR .)
121
SET(INSTALL_LOCALEDIR ./locale)
122
ENDIF(UNIX AND NOT WIN32)
124
########### Generate a config.h ###########
125
INCLUDE(TestBigEndian)
126
TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
127
SET(HAVE_LIBCURL ${CURL_FOUND})
128
SET(PACKAGE_VERSION ${VERSION})
129
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
131
########### Add macros ###########
132
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
134
########### uninstall files ###############
136
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
137
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
140
ADD_CUSTOM_TARGET(uninstall
141
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
143
########### Packaging info for CPack ###########
144
INCLUDE(InstallRequiredSystemLibraries)
146
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Stellarium is a free open source planetarium for your computer. It shows a realistic sky in 3D, just like what you see with the naked eye, binoculars or a telescope.")
147
SET(CPACK_PACKAGE_VENDOR "Stellarium's team")
148
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
149
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
150
SET(CPACK_PACKAGE_VERSION_MAJOR ${STELLARIUM_MAJOR})
151
SET(CPACK_PACKAGE_VERSION_MINOR ${STELLARIUM_MINOR})
152
SET(CPACK_PACKAGE_VERSION_PATCH ${STELLARIUM_PATCH})
153
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "stellarium")
154
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "stellarium-${VERSION}")
155
SET(CPACK_SOURCE_GENERATOR "TGZ")
156
SET(CPACK_GENERATOR "TGZ")
157
SET(CPACK_STRIP_FILES "bin/stellarium")
158
SET(CPACK_PACKAGE_EXECUTABLES "stellarium" "Stellarium")
159
set(CPACK_SOURCE_IGNORE_FILES "/CVS/" "/.svn/" "/.git/" "builds/" "Stellarium.tag$" "Stellarium.kdevelop.pcs$" "~$" "\\\\.swp$" "\\\\.#" "/#")
162
########### Generate doxygen doc ###############
163
ADD_CUSTOM_TARGET(doc doxygen Doxyfile WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMENT "Generate the doxygen documentation into the builds/doc directory.")
165
########### Subdirectories ###############
166
ADD_SUBDIRECTORY( data )
167
ADD_SUBDIRECTORY( src )
168
ADD_SUBDIRECTORY( textures )
169
ADD_SUBDIRECTORY( doc )
170
ADD_SUBDIRECTORY( po )
171
ADD_SUBDIRECTORY( landscapes )
172
ADD_SUBDIRECTORY( skycultures )
173
ADD_SUBDIRECTORY( nebulae )
174
ADD_SUBDIRECTORY( scripts )
175
ADD_SUBDIRECTORY( stars )
177
########### Macosx Bundling ###############
179
ADD_CUSTOM_TARGET(macosx_bundle mv ${CMAKE_INSTALL_PREFIX}/bin ${CMAKE_INSTALL_PREFIX}/MacOS COMMAND mv ${CMAKE_INSTALL_PREFIX}/share ${CMAKE_INSTALL_PREFIX}/Resources COMMAND mv ${CMAKE_INSTALL_PREFIX}/Resources/stellarium/* ${CMAKE_INSTALL_PREFIX}/Resources COMMAND rmdir ${CMAKE_INSTALL_PREFIX}/Resources/stellarium COMMAND mkdir ${CMAKE_INSTALL_PREFIX}/Frameworks COMMAND perl util/pkgApp.pl ${CMAKE_INSTALL_PREFIX} MacOS/stellarium Frameworks DEPENDS install WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMENT "making the macosx bundle." VERBATIM)