-
Notifications
You must be signed in to change notification settings - Fork 345
/
CMakeLists.txt
59 lines (53 loc) · 2.32 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
file(GLOB chipmunk_source_files "*.c")
file(GLOB chipmunk_public_header "${chipmunk_SOURCE_DIR}/include/chipmunk/*.h")
include_directories(${chipmunk_SOURCE_DIR}/include)
# Chipmunk2D 7.0.3
set(CHIPMUNK_VERSION_MAJOR 7)
set(CHIPMUNK_VERSION_MINOR 0)
set(CHIPMUNK_VERSION_PATCH 3)
set(CHIPMUNK_VERSION "${CHIPMUNK_VERSION_MAJOR}.${CHIPMUNK_VERSION_MINOR}.${CHIPMUNK_VERSION_PATCH}")
message("Configuring Chipmunk2D version ${CHIPMUNK_VERSION}")
if(BUILD_SHARED)
add_library(chipmunk SHARED
${chipmunk_source_files}
)
# Tell MSVC to compile the code as C++.
if(MSVC)
set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
set_target_properties(chipmunk PROPERTIES LINKER_LANGUAGE CXX)
endif(MSVC)
# set the lib's version number
# But avoid on Android because symlinks to version numbered .so's don't work with Android's Java-side loadLibrary.
if(NOT ANDROID)
set_target_properties(chipmunk PROPERTIES
SOVERSION ${CHIPMUNK_VERSION_MAJOR}
VERSION ${CHIPMUNK_VERSION})
endif(NOT ANDROID)
if(ANDROID OR UNIX)
# need to explicitly link to the math library because the CMake/Android toolchains may not do it automatically
target_link_libraries(chipmunk m)
endif(ANDROID OR UNIX)
install(TARGETS chipmunk RUNTIME DESTINATION ${BIN_INSTALL_DIR}
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
endif(BUILD_SHARED)
if(BUILD_STATIC)
add_library(chipmunk_static STATIC
${chipmunk_source_files}
)
# Tell MSVC to compile the code as C++.
if(MSVC)
set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
set_target_properties(chipmunk_static PROPERTIES LINKER_LANGUAGE CXX)
endif(MSVC)
# Sets chipmunk_static to output "libchipmunk.a" not "libchipmunk_static.a"
set_target_properties(chipmunk_static PROPERTIES OUTPUT_NAME chipmunk)
if(INSTALL_STATIC)
install(TARGETS chipmunk_static ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
endif(INSTALL_STATIC)
endif(BUILD_STATIC)
if(BUILD_SHARED OR INSTALL_STATIC)
# FIXME: change to PUBLIC_HEADER to allow building frameworks
install(FILES ${chipmunk_public_header} DESTINATION include/chipmunk)
install(FILES ${chipmunk_constraint_header} DESTINATION include/chipmunk/constraints)
endif(BUILD_SHARED OR INSTALL_STATIC)