1 file(GLOB chipmunk_source_files "*.c")
2 file(GLOB chipmunk_public_header "${chipmunk_SOURCE_DIR}/include/chipmunk/*.h")
4 include_directories(${chipmunk_SOURCE_DIR}/include)
7 set(CHIPMUNK_VERSION_MAJOR 7)
8 set(CHIPMUNK_VERSION_MINOR 0)
9 set(CHIPMUNK_VERSION_PATCH 3)
10 set(CHIPMUNK_VERSION "${CHIPMUNK_VERSION_MAJOR}.${CHIPMUNK_VERSION_MINOR}.${CHIPMUNK_VERSION_PATCH}")
11 message("Configuring Chipmunk2D version ${CHIPMUNK_VERSION}")
13 set(prefix ${CMAKE_INSTALL_PREFIX})
14 option(ENABLE_PKG_CONFIGURE "Use pkgconfig" ON)
16 if(ENABLE_PKG_CONFIGURE)
17 find_package(PkgConfig REQUIRED)
19 # Configure the pkg-config file
20 # Requires the following variables to be setup:
21 # @PREFIX@ @EXEC_PREFIX@ @CHIPMUNK_VERSION@ @LIB_DIR@ @DEV_INCLUDE_PATH@
22 set( LIB_DIR $ENV{libdir} )
24 set( LIB_DIR ${CMAKE_INSTALL_LIBDIR} )
27 set( LIB_DIR ${prefix}/lib )
31 set(EXEC_PREFIX ${CMAKE_INSTALL_PREFIX})
32 set(DEV_INCLUDE_PATH ${INCLUDE_DIR})
34 set(chipmunk_pkg_cfg_file chipmunk2d.pc)
35 configure_file(${CMAKE_CURRENT_LIST_DIR}/${chipmunk_pkg_cfg_file}.in ${chipmunk_pkg_cfg_file} @ONLY)
36 endif(ENABLE_PKG_CONFIGURE)
39 FIND_LIBRARY(LOGLIB log)
43 add_library(chipmunk SHARED
44 ${chipmunk_source_files}
46 # Tell MSVC to compile the code as C++.
48 set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
49 set_target_properties(chipmunk PROPERTIES LINKER_LANGUAGE CXX)
51 # set the lib's version number
52 # But avoid on Android because symlinks to version numbered .so's don't work with Android's Java-side loadLibrary.
54 set_target_properties(chipmunk PROPERTIES
55 SOVERSION ${CHIPMUNK_VERSION_MAJOR}
56 VERSION ${CHIPMUNK_VERSION})
59 # need to explicitly link to the math library because the CMake/Android toolchains may not do it automatically
60 target_link_libraries(chipmunk m ${COVERAGE})
61 endif(ANDROID OR UNIX)
63 target_link_libraries(chipmunk ${LOGLIB})
65 install(TARGETS chipmunk RUNTIME DESTINATION ${BIN_INSTALL_DIR}
66 LIBRARY DESTINATION ${LIB_INSTALL_DIR}
67 ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
71 add_library(chipmunk_static STATIC
72 ${chipmunk_source_files}
74 # Tell MSVC to compile the code as C++.
76 set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
77 set_target_properties(chipmunk_static PROPERTIES LINKER_LANGUAGE CXX)
79 # Sets chipmunk_static to output "libchipmunk.a" not "libchipmunk_static.a"
80 set_target_properties(chipmunk_static PROPERTIES OUTPUT_NAME chipmunk)
81 target_link_libraries(chipmunk m ${COVERAGE})
83 target_link_libraries(chipmunk ${LOGLIB})
86 install(TARGETS chipmunk_static ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
90 if(BUILD_SHARED OR INSTALL_STATIC)
91 # FIXME: change to PUBLIC_HEADER to allow building frameworks
92 install(FILES ${chipmunk_public_header} DESTINATION include/chipmunk)
93 install(FILES ${chipmunk_constraint_header} DESTINATION include/chipmunk/constraints)
94 endif(BUILD_SHARED OR INSTALL_STATIC)
96 if (ENABLE_PKG_CONFIGURE)
97 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${chipmunk_pkg_cfg_file} ${CMAKE_CURRENT_BINARY_DIR}/${chipmunk_pkg_cfg_file}
98 DESTINATION ${LIB_DIR}/pkgconfig