[dali_2.3.21] Merge branch 'devel/master'
[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(BEFORE ${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 you want to reduce the size of the library slightly, uncomment this section
43 #
44 #if(NOT ENABLE_DEBUG)
45 #  add_definitions( "-DCP_SPACE_DISABLE_DEBUG_API")
46 #endif()
47
48 if(BUILD_SHARED)
49   add_library(chipmunk SHARED
50     ${chipmunk_source_files}
51   )
52   # Tell MSVC to compile the code as C++.
53   if(MSVC)
54     set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
55     set_target_properties(chipmunk PROPERTIES LINKER_LANGUAGE CXX)
56   endif(MSVC)
57   # set the lib's version number
58   # But avoid on Android because symlinks to version numbered .so's don't work with Android's Java-side loadLibrary.
59   if(NOT ANDROID)
60     set_target_properties(chipmunk PROPERTIES
61       SOVERSION ${CHIPMUNK_VERSION_MAJOR}
62       VERSION ${CHIPMUNK_VERSION})
63   endif(NOT ANDROID)
64   target_compile_options(chipmunk PRIVATE -fvisibility=default)
65   if(ANDROID OR UNIX)
66     # need to explicitly link to the math library because the CMake/Android toolchains may not do it automatically
67     target_link_libraries(chipmunk m ${COVERAGE})
68   endif(ANDROID OR UNIX)
69   if(ANDROID)
70     target_link_libraries(chipmunk ${LOGLIB})
71   endif(ANDROID)
72   install(TARGETS chipmunk EXPORT chipmunk-targets
73                            RUNTIME DESTINATION ${BIN_INSTALL_DIR}
74                            LIBRARY DESTINATION ${LIB_INSTALL_DIR}
75                            ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
76                            )
77 endif(BUILD_SHARED)
78
79 if(BUILD_STATIC)
80   add_library(chipmunk_static STATIC
81     ${chipmunk_source_files}
82   )
83   # Tell MSVC to compile the code as C++.
84   if(MSVC)
85     set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
86     set_target_properties(chipmunk_static PROPERTIES LINKER_LANGUAGE CXX)
87   endif(MSVC)
88   # Sets chipmunk_static to output "libchipmunk.a" not "libchipmunk_static.a"
89   set_target_properties(chipmunk_static PROPERTIES OUTPUT_NAME chipmunk)
90   target_compile_options(chipmunk PRIVATE -fvisibility=default)
91   target_link_libraries(chipmunk m ${COVERAGE})
92   if(ANDROID)
93     target_link_libraries(chipmunk ${LOGLIB})
94   endif(ANDROID)
95   if(INSTALL_STATIC)
96     install(TARGETS chipmunk_static EXPORT chipmunk-targets ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
97   endif(INSTALL_STATIC)
98 endif(BUILD_STATIC)
99
100 if(BUILD_SHARED OR INSTALL_STATIC)
101   # FIXME: change to PUBLIC_HEADER to allow building frameworks
102   install(FILES ${chipmunk_public_header} DESTINATION include/chipmunk)
103   install(FILES ${chipmunk_constraint_header} DESTINATION include/chipmunk/constraints)
104
105   if(INSTALL_CMAKE_MODULES)
106     install(
107       EXPORT chipmunk-targets
108       NAMESPACE chipmunk::
109       FILE chipmunk-targets.cmake
110       DESTINATION share/chipmunk
111     )
112
113     file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/chipmunk-config.cmake "
114       include(CMakeFindDependencyMacro)
115       include(\${CMAKE_CURRENT_LIST_DIR}/chipmunk-targets.cmake)
116     ")
117     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/chipmunk-config.cmake DESTINATION share/chipmunk)
118   endif()
119 endif(BUILD_SHARED OR INSTALL_STATIC)
120
121 if (ENABLE_PKG_CONFIGURE)
122     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${chipmunk_pkg_cfg_file}
123         DESTINATION ${LIB_DIR}/pkgconfig
124     )
125 endif()