CMakeLists.txt

code/snowballs2/Cmakelist.txt - erdongchen, 08/22/2011 09:49 am

Download (6.8 kB)

 
1
#-----------------------------------------------------------------------------^M
2
# Set CMake 2.6 Policies.
3
IF(COMMAND cmake_policy)
4
  cmake_policy(SET CMP0003 NEW)
5
ENDIF(COMMAND cmake_policy)
6

7

8
#-----------------------------------------------------------------------------
9
# Set default config options
10
#
11
NL_SETUP_DEFAULT_OPTIONS()
12
NL_SETUP_PREFIX_PATHS()
13

14
#-----------------------------------------------------------------------------
15
# Override default options
16
OPTION(BUILD_CLIENT "Build the Snowballs Client" ON)
17
OPTION(ENABLE_SOUND "Enable sound in the Snowballs Client" OFF)
18

19
OPTION(BUILD_SERVER "Build the Snowballs Servers" ON)
20
SET(SNOWBALLS_CONFIG_FILE "${NL_ETC_PREFIX}/snowballs" CACHE FILEPATH "Snowballs config file location")
21
SET(SNOWBALLS_DATA_FILE "${NL_SHARE_PREFIX}/games/snowballs" CACHE FILEPATH "Snowballs data file location")
22
SET(SNOWBALLS_LOG_FILE "${NL_LOG_PREFIX}/snowballs" CACHE FILEPATH "Snowballs log file location")
23
INSTALL(CODE "FILE(MAKE_DIRECTORY ${SNOWBALLS_LOG_FILE})")
24

25
#-----------------------------------------------------------------------------
26
#Platform specifics
27

28
FIND_PACKAGE(Threads REQUIRED)
29
FIND_PACKAGE(LibXml2 REQUIRED)
30
FIND_PACKAGE(PNG REQUIRED)
31

32
NL_SETUP_BUILD()
33

34
FIND_PACKAGE(NeL COMPONENTS nelmisc nelgeorges nel3d nelnet nelpacs REQUIRED)
35
FIND_PACKAGE(NeLNS COMPONENTS naming_service login_service welcome_service nel_launcher_qt)
36

37
###
38
# An example of finding NeL 3D and CEGUI Renderer.
39
###
40
IF(BUILD_CLIENT)
41
IF(WITH_SNOWBALLS_CLIENT)
42
  FIND_PACKAGE(FreeType)
43
  FIND_PACKAGE(Jpeg)
44
  
45
  IF(ENABLE_SOUND)
46
    FIND_PACKAGE(NeL COMPONENTS nelsound)
47
  ENDIF(ENABLE_SOUND)
48
ENDIF(BUILD_CLIENT)
49

50
IF(WIN32)
51
  INCLUDE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake)
52
  SET(WINSOCK2_LIB ws2_32.lib)
53
ENDIF(WIN32)
54

55
NL_SETUP_BUILD_FLAGS()
56
ENDIF(WITH_SNOWBALLS_CLIENT)
57

58

59
ADD_DEFINITIONS(-DSNOWBALLS_CONFIG="${SNOWBALLS_CONFIG_FILE}/" -DSNOWBALLS_STATE="${SNOWBALLS_LOG_FILE}/" -DSNOWBALLS_LOGS="${SNOWBALLS_LOG_FILE}/")
60

61
IF(BUILD_CLIENT)
62
IF(WITH_SNOWBALLS_CLIENT)
63
  ADD_SUBDIRECTORY(client)
64
ENDIF(BUILD_CLIENT)
65
ENDIF(WITH_SNOWBALLS_CLIENT)
66

67
IF(BUILD_SERVER)
68
IF(WITH_SNOWBALLS_SERVER)
69
  ADD_SUBDIRECTORY(server)
70
ENDIF(BUILD_SERVER)
71
ENDIF(WITH_SNOWBALLS_SERVER)
72

73
# packaging information
74
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "NeL MMORPG Framework - Snowballs Demo")
75
SET(CPACK_PACKAGE_VENDOR "NeL")
76
SET(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/README)
77
SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING)
78
SET(CPACK_PACKAGE_VERSION_MAJOR "${SB_VERSION_MAJOR}")
79
SET(CPACK_PACKAGE_VERSION_MINOR "${SB_VERSION_MINOR}")
80
SET(CPACK_PACKAGE_VERSION_PATCH "${SB_VERSION_PATCH}")
81
SET(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR};Snowballs;ALL;/")
82
SET(CPACK_PACKAGE_EXECUTABLES "snowballs-${SB_VERSION}" "snowballs")
83

84
# NSIS Specific Packing Setup
85
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Snowballs")
86
SET(CPACK_NSIS_MODIFY_PATH "ON")
87
SET(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/resources/nevraxpill.ico)
88
SET(CPACK_NSIS_MUI_UNIICON ${CMAKE_SOURCE_DIR}/resources/nevraxpill.ico)
89
SET(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/resources\\\\nel.bmp)
90
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} Snowballs")
91
SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\dev.ryzom.com\\\\projects\\\\nel")
92
SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\dev.ryzom.com\\\\projects\\\\nel")
93
SET(CPACK_NSIS_CONTACT "[email protected]")  
94

95
## Source Packages
96
SET(CPACK_PACKAGE_FILE_NAME "snowballs-${SB_VERSION}")
97
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "snowballs-${SB_VERSION}")
98
IF(WIN32)
99
  SET(CPACK_GENERATOR "NSIS")
100
  SET(CPACK_SOURCE_GENERATOR "ZIP")
101
ELSE(WIN32)
102
  SET(CPACK_GENERATOR "TGZ")
103
  SET(CPACK_SOURCE_GENERATOR "TGZ")
104
ENDIF(WIN32)
105
set(CPACK_SOURCE_IGNORE_FILES
106
        "~$"
107
        "\\\\.cvsignore$"
108
        "^${CMAKE_SOURCE_DIR}.*/CVS/"
109
        "^${CMAKE_SOURCE_DIR}.*/\\\\.svn/"
110
        "^${CMAKE_SOURCE_DIR}/debian/"
111
        "^${CMAKE_SOURCE_DIR}/old/")
112
IF(WIN32)
113
  IF(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
114
    # Install "Debug" specific stuff here.
115
    SET(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE)
116
    message(status "install debug libraries.")
117
  ELSE(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
118
    # Install "Release" Specific stuff here.
119
    SET(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE)
120
  ENDIF(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
121
  
122
  IF(BUILD_CLIENT)
123
  IF(WITH_SNOWBALLS_CLIENT)
124
    IF( WITH_QT )
125
				# Needed to find dependencies for nel_launcher_qt.
126
				FIND_PACKAGE(Qt4 REQUIRED)
127
	
128
    # Install Qt dependencies for the launcher.
129
    INCLUDE(${QT_USE_FILE})
130
    INSTALL(FILES 
131
        "${QT_LIBRARY_DIR}/QtGuid4.dll"        
132
        "${QT_LIBRARY_DIR}/QtXmld4.dll"
133
        "${QT_LIBRARY_DIR}/QtCored4.dll"
134
        DESTINATION bin)
135
        
136
        # Install Qt dependencies for the launcher.
137
        INCLUDE(${QT_USE_FILE})
138
        INSTALL(FILES 
139
	        "${QT_BINARY_DIR}/QtGuid4.dll"        
140
	        "${QT_BINARY_DIR}/QtXmld4.dll"
141
	        "${QT_BINARY_DIR}/QtCored4.dll"
142
	        DESTINATION bin)
143
           
144
     # Install the Qt Launcher.
145
     INSTALL(FILES ${NELNS_NEL_LAUNCHER_BIN} DESTINATION bin COMPONENT snowballsclient)
146
         # Install the Qt Launcher.
147
         INSTALL(FILES ${NELNS_NEL_LAUNCHER_BIN} DESTINATION bin COMPONENT snowballsclient)
148
     ENDIF( WITH_QT )
149
     
150
     # Install the sound/video drivers
151
     INSTALL(FILES ${NELDRVOPENGL_DLL} ${NELDRVDIRECT3D_DLL} DESTINATION bin COMPONENT snowballsclient)
152
  ENDIF(BUILD_CLIENT)
153
  ENDIF(WITH_SNOWBALLS_CLIENT)
154
  
155
  
156
  IF(BUILD_SERVER)
157
  IF(WITH_SNOWBALLS_SERVER)
158
    INSTALL(FILES 
159
					${NELNS_NAMING_SERVICE_BIN} 
160
					${NELNS_NAMING_SERVICE_CFG} 
161
					${NELNS_LOGIN_SERVICE_BIN} 
162
					${NELNS_LOGIN_SERVICE_CFG}
163
					${NELNS_WELCOME_SERVICE_BIN} 
164
					${NELNS_WELCOME_SERVICE_CFG}
165
					DESTINATION sbin 
166
					COMPONENT services)
167
  ENDIF(BUILD_SERVER)
168
  ENDIF(WITH_SNOWBALLS_SERVER)
169
  
170
  INCLUDE(InstallRequiredSystemLibraries)
171
ENDIF(WIN32)
172

173
INCLUDE(CPack)
174

175
cpack_add_install_type(Full DISPLAY_NAME "Full Install")
176

177
cpack_add_component_group(Client 
178
  EXPANDED 
179
  DESCRPTION "Snowballs Client")
180
  
181
cpack_add_component_group(Server 
182
  EXPANDED 
183
  DESCRPTION "Snowballs Services")
184
  
185
cpack_add_component(snowballsclient
186
  DISPLAY_NAME "Snowballs Client Runtime"
187
  DESCRIPTION "Hello World Application"
188
  GROUP Application
189
  INSTALL_TYPES Full)
190
  
191
cpack_add_component(Unspecified
192
  DISPLAY_NAME "Application Runtime Libraries"
193
  DESCRIPTION "Hello World Application Libraries"
194
  GROUP Client
195
  INSTALL_TYPES Full)
196
  
197
cpack_add_component(snowballsdata
198
  DISPLAY_NAME "Snowballs Application Data"
199
  DESCRIPTION "Snowballs Application Data"
200
  GROUP Client
201
  INSTALL_TYPES Full) 
202
  
203
cpack_add_component(services
204
  DISPLAY_NAME "Snowballs Services"
205
  DESCRIPTION "Snowballs Services"
206
  GROUP Server
207
  INSTALL_TYPES Full)