Merge "Implements CanvasView control" into devel/master
[platform/core/uifw/dali-toolkit.git] / build / tizen / dali-scene-loader / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 3.8.2)
2 set(name "dali2-scene-loader")
3
4 project(${name} CXX)
5
6 set(${name}_VERSION_MAJOR 2)
7 set(${name}_VERSION_MINOR 0)
8 set(${name}_VERSION_PATCH 0)
9 set(${name}_VERSION ${${name}_VERSION_MAJOR}.${${name}_VERSION_MINOR}.${${name}_VERSION_PATCH} )
10
11 SET(DALI_SCENE_LOADER_VERSION ${${name}_VERSION} )
12
13 if(CMAKE_BUILD_TYPE MATCHES Debug)
14         add_definitions("-DDEBUG_ENABLED")
15 endif()
16
17 foreach(flag ${PKGS_CFLAGS})
18         set(extra_flags "${extra_flags} ${flag}")
19 endforeach(flag)
20
21 set(prj_cxx_std c++17)
22 if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
23         set(extra_flags "${extra_flags} -fPIC -std=${prj_cxx_std}")
24 elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
25         set(extra_flags "${extra_flags} -fPIC -std=${prj_cxx_std}")
26 elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
27         set(extra_flags "${extra_flags} /std:${prj_cxx_std} /vmg /D_USE_MATH_DEFINES /D_CRT_SECURE_NO_WARNINGS /MP /GS /Oi /GL /EHsc")
28 endif()
29
30 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${extra_flags}")
31
32 set(prefix ${CMAKE_INSTALL_PREFIX})
33
34 set(repo_root_dir "${CMAKE_CURRENT_LIST_DIR}/../../../")
35 set(scene_loader_dir "${repo_root_dir}/dali-scene-loader")
36
37 option(ENABLE_PKG_CONFIGURE "Use pkgconfig" ON)
38 option(ENABLE_COVERAGE "Coverage" OFF)
39
40 IF( ENABLE_COVERAGE OR "$ENV{CXXFLAGS}" MATCHES --coverage )
41   ADD_COMPILE_OPTIONS( --coverage )
42   SET(ENABLE_COVERAGE ON)
43   SET(COVERAGE --coverage)
44 ENDIF()
45
46 if (ENABLE_PKG_CONFIGURE)
47         find_package(PkgConfig REQUIRED)
48
49         pkg_check_modules(DALICORE REQUIRED dali2-core)
50         pkg_check_modules(DALIADAPTOR REQUIRED dali2-adaptor)
51
52         # Configure the pkg-config file
53         # Requires the following variables to be setup:
54         # @PREFIX@ @EXEC_PREFIX@ @DALI_VERSION@ @LIB_DIR@ @DEV_INCLUDE_PATH@
55         set( LIB_DIR $ENV{libdir} )
56         if( NOT LIB_DIR )
57                 set( LIB_DIR ${CMAKE_INSTALL_LIBDIR} )
58         endif()
59         if( NOT LIB_DIR )
60                 set( LIB_DIR ${prefix}/lib )
61         endif()
62
63         set(PREFIX ${prefix})
64         set(EXEC_PREFIX ${CMAKE_INSTALL_PREFIX})
65         set(DEV_INCLUDE_PATH ${repo_root_dir})
66
67         set(core_pkg_cfg_file dali2-scene-loader.pc)
68         configure_file(${CMAKE_CURRENT_LIST_DIR}/${core_pkg_cfg_file}.in ${core_pkg_cfg_file} @ONLY)
69 endif()
70
71 set(scene_loader_src_files "")
72 include("${scene_loader_dir}/internal/file.list")
73 include("${scene_loader_dir}/public-api/file.list")
74
75 set(prefix_include_dir "${prefix}/include")
76 include_directories(${repo_root_dir}
77         ${prefix_include_dir}
78 )
79
80 add_library(${name} SHARED ${scene_loader_src_files})
81
82 target_link_libraries(${name} ${DALICORE_LDFLAGS} ${DALIADAPTOR_LDFLAGS}
83         dali2-toolkit
84         ${COVERAGE})
85
86 if( ANDROID )
87         target_link_libraries(${name} log)
88 endif()
89
90 # Generate source files for shaders
91 SET(SHADER_SOURCE_DIR "${scene_loader_dir}/internal/graphics/shaders/")
92 SET(SHADER_GENERATED_DIR "${scene_loader_dir}/internal/graphics/generated")
93 EXECUTE_PROCESS( COMMAND bash -c "${repo_root_dir}/build/tizen/shader-generator.sh ${SHADER_SOURCE_DIR} ${SHADER_GENERATED_DIR}" )
94
95 SET(GENERATED_SHADER_DIR ${scene_loader_dir}/internal/graphics/)
96 SET_PROPERTY(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
97              "${GENERATED_SHADER_DIR}/generated/"
98              "${GENERATED_SHADER_DIR}/builtin-shader-extern-gen.h")
99
100 IF( INSTALL_CMAKE_MODULES )
101         SET_TARGET_PROPERTIES( ${name}
102                 PROPERTIES
103                 VERSION ${DALI_SCENE_LOADER_VERSION}
104                 SOVERSION ${${name}_VERSION_MAJOR}
105                 CLEAN_DIRECT_OUPUT 1
106         )
107
108         IF( ENABLE_DEBUG )
109                 SET( BIN_DIR "${BIN_DIR}/debug" )
110                 SET( LIB_DIR "${LIB_DIR}/debug" )
111         ENDIF()
112
113         # Install the library files.
114         INSTALL( TARGETS ${name}
115                 EXPORT ${name}-targets
116                 LIBRARY DESTINATION ${LIB_DIR}
117                 ARCHIVE DESTINATION ${LIB_DIR}
118                 RUNTIME DESTINATION ${BIN_DIR}
119         )
120
121         # Install the cmake modules.
122         INSTALL(
123                 EXPORT ${name}-targets
124                 NAMESPACE ${name}::
125                 FILE ${name}-targets.cmake
126                 DESTINATION share/${name}
127         )
128
129         FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${name}-config.cmake "
130                 include(CMakeFindDependencyMacro)
131                 include(\${CMAKE_CURRENT_LIST_DIR}/${name}-targets.cmake)
132         ")
133         install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name}-config.cmake DESTINATION share/${name})
134
135         # Install the pdb file.
136         IF( ENABLE_DEBUG AND WIN32 )
137                 install( FILES ${CMAKE_CURRENT_BINARY_DIR}/Debug/${name}.pdb DESTINATION ${BIN_DIR} )
138         ENDIF()
139 ELSE()
140         # Install the library so file and symlinks
141         INSTALL( TARGETS ${name} DESTINATION ${LIB_DIR} )
142 ENDIF()
143
144 file(GLOB scene_loader_include_files ${scene_loader_public_api_dir})
145 install(DIRECTORY ${scene_loader_include_files}
146         DESTINATION "${prefix_include_dir}/dali-scene-loader"
147         FILES_MATCHING PATTERN "*.h"
148 )
149
150 if (ENABLE_PKG_CONFIGURE)
151         install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${core_pkg_cfg_file}
152                 DESTINATION ${LIB_DIR}/pkgconfig
153         )
154 endif()