-
Notifications
You must be signed in to change notification settings - Fork 49
/
Copy pathCMakeLists.txt
150 lines (130 loc) · 5.56 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# OpenNERO build system for use with cmake (http://www.cmake.org/)
# to build using make on *nix:
# > cmake .
# > make
# require at least cmake 2.6
IF(COMMAND cmake_minimum_required)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
ENDIF(COMMAND cmake_minimum_required)
# the project is called OpenNERO
PROJECT(OpenNERO)
# allow cmake to search for libraries
IF(COMMAND cmake_policy)
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND cmake_policy)
# default build type
IF( NOT CMAKE_BUILD_TYPE )
SET( CMAKE_BUILD_TYPE "RelWithDebInfo" )
ENDIF( NOT CMAKE_BUILD_TYPE )
# build universal on Mac OS X TODO: need universal boost libraries and internal png/jpeg/z (not fink, since those are native)
# SET( CMAKE_OSX_ARCHITECTURES "i386;ppc" )
# if we need any extra cmake modules, stick them in the make directory
SET(CMAKE_MODULE_PATH "${OpenNERO_SOURCE_DIR}/cmake")
# set old-style global output parameters
SET(EXECUTABLE_OUTPUT_PATH ${OpenNERO_BINARY_DIR}/dist)
SET(LIBRARY_OUTPUT_PATH ${OpenNERO_BINARY_DIR}/dist)
# set new-style global output parameters
SET(CMAKE_RUNTIME_OUTPUT_PATH ${OpenNERO_BINARY_DIR}/dist)
SET(UTCS_HARDY_SETUP false)
IF (UNIX)
EXECUTE_PROCESS(COMMAND lsb_release -cs OUTPUT_VARIABLE LSB_RELEASE_CS OUTPUT_STRIP_TRAILING_WHITESPACE)
IF (${LSB_RELEASE_CS})
IF (${LSB_RELEASE_CS} STREQUAL "hardy" AND EXISTS "/lusr" AND EXISTS "/p")
SET(UTCS_HARDY_SETUP true)
ENDIF (${LSB_RELEASE_CS} STREQUAL "hardy" AND EXISTS "/lusr" AND EXISTS "/p")
ENDIF (${LSB_RELEASE_CS})
ENDIF (UNIX)
# if we are compiling on UTCS machines, use the UTCS-specific location
IF (UTCS_HARDY_SETUP)
IF (EXISTS "/lusr")
LIST(APPEND CMAKE_PREFIX_PATH "/lusr")
LIST(APPEND CMAKE_LIBRARY_PATH "/lusr/lib")
LIST(APPEND CMAKE_INCLUDE_PATH "/lusr/include")
ENDIF (EXISTS "/lusr")
IF (EXISTS "/lusr/X11")
LIST(APPEND CMAKE_PREFIX_PATH "/lusr/X11")
LIST(APPEND CMAKE_LIBRARY_PATH "/lusr/X11/lib")
LIST(APPEND CMAKE_INCLUDE_PATH "/lusr/X11/include")
ENDIF (EXISTS "/lusr/X11")
IF (EXISTS "/p")
LIST(APPEND CMAKE_PREFIX_PATH "/p")
LIST(APPEND CMAKE_LIBRARY_PATH "/p/lib")
LIST(APPEND CMAKE_INCLUDE_PATH "/p/include")
ENDIF (EXISTS "/p")
ENDIF (UTCS_HARDY_SETUP)
# if the system has doxygen, make a doxygen target
INCLUDE("${CMAKE_MODULE_PATH}/TargetDoc.cmake" OPTIONAL)
# we need OpenGL
FIND_PACKAGE( OpenGL REQUIRED )
INCLUDE_DIRECTORIES ( ${OPENGL_INCLUDE_DIR} )
# compile external libraries
ADD_SUBDIRECTORY (${CMAKE_CURRENT_SOURCE_DIR}/external/source)
# compile java
ADD_SUBDIRECTORY (${CMAKE_CURRENT_SOURCE_DIR}/java)
# compile source
ADD_SUBDIRECTORY (${CMAKE_CURRENT_SOURCE_DIR}/source)
# TESTING
ENABLE_TESTING()
# INSTALL
# we want to create packages for the platforms using CMake and CPack
# To do this, we use INSTALL commands in source/ and external/source/
# to figure out *what to install*, and the section below to figure out
# *how to package* it.
# We have to install system libraries ourselves, but use
# InstallRequiredSystemLibraries to figure out what they are
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP true)
INCLUDE(InstallRequiredSystemLibraries)
# Include system runtime libraries in the installation if any are
# specified by CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS.
IF(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
IF(WIN32)
# DLLs go same place as programs on Windows
INSTALL(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION ".")
ELSE(WIN32)
# .so go same place as libraries on non-Windows
INSTALL(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION ".")
ENDIF(WIN32)
ENDIF(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
IF (WIN32)
EXECUTE_PROCESS(COMMAND "cmd.exe" "/c" "date" "/T" OUTPUT_VARIABLE RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REGEX REPLACE ".*(..)/(..)/(....).*" "\\3" YEAR ${RESULT})
string(REGEX REPLACE ".*(..)/(..)/(....).*" "\\1" MONTH ${RESULT})
string(REGEX REPLACE ".*(..)/(..)/(....).*" "\\2" DAY ${RESULT})
ELSEIF(UNIX)
EXECUTE_PROCESS(COMMAND "date" "+%d/%m/%Y" OUTPUT_VARIABLE RESULT)
string(REGEX REPLACE "(..)/(..)/(....).*" "\\3" YEAR ${RESULT})
string(REGEX REPLACE "(..)/(..)/(....).*" "\\2" MONTH ${RESULT})
string(REGEX REPLACE "(..)/(..)/(....).*" "\\1" DAY ${RESULT})
ELSE (WIN32)
MESSAGE(SEND_ERROR "date not implemented")
SET(YEAR 0000)
SET(MONTH 00)
SET(DAY 00)
ENDIF (WIN32)
SET(CPACK_PACKAGE_NAME "OpenNERO")
SET(CPACK_PACKAGE_VENDOR "Neural Networks Research Group")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenNERO - A Game Platform for AI Research and Education")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.txt")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING.txt")
SET(CPACK_PACKAGE_VERSION "${YEAR}.${MONTH}.${DAY}")
SET(CPACK_PACKAGE_VERSION_MAJOR "${YEAR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${MONTH}")
SET(CPACK_PACKAGE_VERSION_PATCH "${DAY}")
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "OpenNERO")
IF(WIN32 AND NOT UNIX)
# There is a bug in NSI that does not handle full unix paths properly. Make
# sure there is at least one set of four (4) backlasshes.
SET(CPACK_NSIS_INSTALLED_ICON_NAME "OpenNERO.exe")
SET(CPACK_NSIS_DISPLAY_NAME "OpenNERO")
SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\opennero.googlecode.com")
SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\opennero.googlecode.com")
SET(CPACK_NSIS_CONTACT "[email protected]")
SET(CPACK_NSIS_MODIFY_PATH ON)
ELSE(WIN32 AND NOT UNIX)
#SET(CPACK_STRIP_FILES "OpenNERO")
SET(CPACK_SOURCE_STRIP_FILES "")
ENDIF(WIN32 AND NOT UNIX)
SET(CPACK_PACKAGE_EXECUTABLES "OpenNERO" "OpenNERO")
# cpack include
INCLUDE(CPack)
# This concludes the installation section.