Add Bullet and Chipmunk to dali-toolkit
[platform/core/uifw/dali-toolkit.git] / dali-physics / third-party / chipmunk2d / src / CMakeLists.txt
1 file(GLOB chipmunk_source_files "*.c")
2 file(GLOB chipmunk_public_header "${chipmunk_SOURCE_DIR}/include/chipmunk/*.h")
3
4 include_directories(${chipmunk_SOURCE_DIR}/include)
5
6 # Chipmunk2D 7.0.3
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}")
12
13 set(prefix ${CMAKE_INSTALL_PREFIX})
14 option(ENABLE_PKG_CONFIGURE "Use pkgconfig" ON)
15
16 if(ENABLE_PKG_CONFIGURE)
17     find_package(PkgConfig REQUIRED)
18
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} )
23     if( NOT LIB_DIR )
24         set( LIB_DIR ${CMAKE_INSTALL_LIBDIR} )
25     endif()
26     if( NOT LIB_DIR )
27         set( LIB_DIR ${prefix}/lib )
28     endif()
29
30     set(PREFIX ${prefix})
31     set(EXEC_PREFIX ${CMAKE_INSTALL_PREFIX})
32     set(DEV_INCLUDE_PATH ${INCLUDE_DIR})
33
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)
37
38 if(ANDROID)
39   FIND_LIBRARY(LOGLIB log)
40 endif(ANDROID)
41
42 if(BUILD_SHARED)
43   add_library(chipmunk SHARED
44     ${chipmunk_source_files}
45   )
46   # Tell MSVC to compile the code as C++.
47   if(MSVC)
48     set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
49     set_target_properties(chipmunk PROPERTIES LINKER_LANGUAGE CXX)
50   endif(MSVC)
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.
53   if(NOT ANDROID)
54     set_target_properties(chipmunk PROPERTIES
55       SOVERSION ${CHIPMUNK_VERSION_MAJOR}
56       VERSION ${CHIPMUNK_VERSION})
57   endif(NOT ANDROID)
58   if(ANDROID OR UNIX)
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)
62   if(ANDROID)
63     target_link_libraries(chipmunk ${LOGLIB})
64   endif(ANDROID)
65   install(TARGETS chipmunk RUNTIME DESTINATION ${BIN_INSTALL_DIR}
66                            LIBRARY DESTINATION ${LIB_INSTALL_DIR}
67                            ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
68 endif(BUILD_SHARED)
69
70 if(BUILD_STATIC)
71   add_library(chipmunk_static STATIC
72     ${chipmunk_source_files}
73   )
74   # Tell MSVC to compile the code as C++.
75   if(MSVC)
76     set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
77     set_target_properties(chipmunk_static PROPERTIES LINKER_LANGUAGE CXX)
78   endif(MSVC)
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})
82   if(ANDROID)
83     target_link_libraries(chipmunk ${LOGLIB})
84   endif(ANDROID)
85   if(INSTALL_STATIC)
86     install(TARGETS chipmunk_static ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
87   endif(INSTALL_STATIC)
88 endif(BUILD_STATIC)
89
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)
95
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
99     )
100 endif()
101