file(GLOB chipmunk_source_files "*.c") file(GLOB chipmunk_public_header "${chipmunk_SOURCE_DIR}/include/chipmunk/*.h") list(REMOVE_ITEM chipmunk_source_files "${chipmunk_SOURCE_DIR}/src/cpHastySpace.c") list(REMOVE_ITEM chipmunk_source_files "${chipmunk_SOURCE_DIR}/src/cpPolyline.c") include_directories(${chipmunk_SOURCE_DIR}/include) set(CHIPMUNK_VERSION_MAJOR 7) set(CHIPMUNK_VERSION_MINOR 0) set(CHIPMUNK_VERSION_PATCH 0) 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) else() add_definitions(-std=c99) endif() # 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) else() add_definitions(-std=c99) endif() # 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) if(CMAKE_BUILD_TYPE STREQUAL "Release") set(CMAKE_C_FLAGS_RELEASE "-O2 -g0") add_definitions(-DNDEBUG) elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") elseif(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel") set(CMAKE_C_FLAGS_MINSIZEREL "-Os -g0") elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_C_FLAGS_DEBUG "-O0 -g3 -pg") set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-pg") set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "-pg") set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-pg") endif()