Apply fittingMode lazy when resource is not ready
[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   target_compile_options(chipmunk PRIVATE -fvisibility=default)
59   if(ANDROID OR UNIX)
60     # need to explicitly link to the math library because the CMake/Android toolchains may not do it automatically
61     target_link_libraries(chipmunk m ${COVERAGE})
62   endif(ANDROID OR UNIX)
63   if(ANDROID)
64     target_link_libraries(chipmunk ${LOGLIB})
65   endif(ANDROID)
66   install(TARGETS chipmunk EXPORT chipmunk-targets
67                            RUNTIME DESTINATION ${BIN_INSTALL_DIR}
68                            LIBRARY DESTINATION ${LIB_INSTALL_DIR}
69                            ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
70                            )
71 endif(BUILD_SHARED)
72
73 if(BUILD_STATIC)
74   add_library(chipmunk_static STATIC
75     ${chipmunk_source_files}
76   )
77   # Tell MSVC to compile the code as C++.
78   if(MSVC)
79     set_source_files_properties(${chipmunk_source_files} PROPERTIES LANGUAGE CXX)
80     set_target_properties(chipmunk_static PROPERTIES LINKER_LANGUAGE CXX)
81   endif(MSVC)
82   # Sets chipmunk_static to output "libchipmunk.a" not "libchipmunk_static.a"
83   set_target_properties(chipmunk_static PROPERTIES OUTPUT_NAME chipmunk)
84   target_compile_options(chipmunk PRIVATE -fvisibility=default)
85   target_link_libraries(chipmunk m ${COVERAGE})
86   if(ANDROID)
87     target_link_libraries(chipmunk ${LOGLIB})
88   endif(ANDROID)
89   if(INSTALL_STATIC)
90     install(TARGETS chipmunk_static EXPORT chipmunk-targets ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
91   endif(INSTALL_STATIC)
92 endif(BUILD_STATIC)
93
94 if(BUILD_SHARED OR INSTALL_STATIC)
95   # FIXME: change to PUBLIC_HEADER to allow building frameworks
96   install(FILES ${chipmunk_public_header} DESTINATION include/chipmunk)
97   install(FILES ${chipmunk_constraint_header} DESTINATION include/chipmunk/constraints)
98
99   if(INSTALL_CMAKE_MODULES)
100     install(
101       EXPORT chipmunk-targets
102       NAMESPACE chipmunk::
103       FILE chipmunk-targets.cmake
104       DESTINATION share/chipmunk
105     )
106
107     file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/chipmunk-config.cmake "
108       include(CMakeFindDependencyMacro)
109       include(\${CMAKE_CURRENT_LIST_DIR}/chipmunk-targets.cmake)
110     ")
111     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/chipmunk-config.cmake DESTINATION share/chipmunk)
112   endif()
113 endif(BUILD_SHARED OR INSTALL_STATIC)
114
115 if (ENABLE_PKG_CONFIGURE)
116     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${chipmunk_pkg_cfg_file}
117         DESTINATION ${LIB_DIR}/pkgconfig
118     )
119 endif()
120