Merge "DALi Version 2.1.26" into devel/master
[platform/core/uifw/dali-csharp-binder.git] / build / tizen / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.1)
2
3 set(CMAKE_CXX_STANDARD 17)
4 set(CMAKE_C_STANDARD 99)
5
6 set(name "dali2-csharp-binder")
7
8 project(${name} CXX)
9
10 set(${name}_VERSION_MAJOR 2)
11 set(${name}_VERSION_MINOR 0)
12 set(${name}_VERSION_PATCH 0)
13 set(${name}_VERSION ${${name}_VERSION_MAJOR}.${${name}_VERSION_MINOR}.${${name}_VERSION_PATCH})
14
15 add_definitions(-DDALI_PROFILE_WINDOWS)
16 add_compile_options( /FIdali-windows-dependencies.h ) # Adds missing definitions.
17 add_compile_options( /vmg ) # Avoids a 'reinterpret_cast' compile error while compiling signals and callbacks.
18 add_compile_options( /wd4251 ) # Ignores warning C4251: "'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'"
19
20 add_definitions(-D_USE_MATH_DEFINES)
21
22 set(VCPKG_INCLUDE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
23
24 find_package( pthreads REQUIRED )
25 find_package( curl REQUIRED )
26 find_library( GETOPT_LIBRARY NAMES getopt )
27 find_library( EXIF_LIBRARY NAMES libexif )
28
29 find_package( png REQUIRED )
30 find_package( gif REQUIRED )
31 find_package( jpeg REQUIRED )
32 find_library( TURBO_JPEG_LIBRARY NAMES turbojpeg )
33
34 find_package( unofficial-fontconfig REQUIRED )
35 find_package( freetype REQUIRED )
36 find_package( harfbuzz REQUIRED )
37 find_library( FRIBIDI_LIBRARY NAMES fribidi )
38
39 find_package( unofficial-angle REQUIRED )
40 find_package( unofficial-cairo REQUIRED )
41
42 find_package( WebP REQUIRED )
43
44 find_package( dali-windows-dependencies REQUIRED )
45 find_package( dali2-core REQUIRED )
46 find_package( dali2-adaptor REQUIRED )
47 find_package( dali2-toolkit REQUIRED )
48
49 # Set up the include dir
50 set( INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include )
51 set( LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib )
52 set( BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin )
53
54 set( REQUIRED_LIBS
55   PThreads4W::PThreads4W
56   CURL::libcurl
57   ${GETOPT_LIBRARY}
58   ${EXIF_LIBRARY}
59   ${PNG_LIBRARIES}
60   ${GIF_LIBRARIES}
61   JPEG::JPEG
62   ${TURBO_JPEG_LIBRARY}
63   unofficial::fontconfig::fontconfig
64   Freetype::Freetype
65   harfbuzz::harfbuzz
66   ${FRIBIDI_LIBRARY}
67   unofficial::angle::libEGL
68   unofficial::angle::libGLESv2
69   unofficial::cairo::cairo
70   WebP::webp
71   WebP::webpdemux
72   dali-windows-dependencies::dali-windows-dependencies
73   dali2-core::dali2-core
74   dali2-adaptor::dali2-adaptor
75   dali2-toolkit::dali2-toolkit
76 )
77
78 include_directories(
79   ${VCPKG_INCLUDE_DIR}
80   ${CMAKE_INSTALL_PREFIX}/include
81   ${INCLUDE_DIR}
82 )
83
84 link_directories(${LIB_DIR})
85
86 set(dali_csharp_binder_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../dali-csharp-binder)
87
88 set(SOURCES
89   ${dali_csharp_binder_dir}/src/callbackbase_wrap.cpp
90   ${dali_csharp_binder_dir}/src/keyboard_focus_manager_wrap.cpp
91   ${dali_csharp_binder_dir}/src/devel-property-wrap.cpp
92   ${dali_csharp_binder_dir}/src/version-check.cpp
93   ${dali_csharp_binder_dir}/src/processor-controller.cpp
94   ${dali_csharp_binder_dir}/src/flex-layout.cpp
95   ${dali_csharp_binder_dir}/src/gestures.cpp
96   ${dali_csharp_binder_dir}/src/view-wrapper-impl-wrap.cpp
97   ${dali_csharp_binder_dir}/src/event-thread-callback-wrap.cpp
98   ${dali_csharp_binder_dir}/src/application.cpp
99   ${dali_csharp_binder_dir}/src/text-editor.cpp
100   ${dali_csharp_binder_dir}/src/text-field.cpp
101   ${dali_csharp_binder_dir}/src/window.cpp
102   ${dali_csharp_binder_dir}/src/tts-player.cpp
103   ${dali_csharp_binder_dir}/src/input-method-context.cpp
104   ${dali_csharp_binder_dir}/src/input-method-options.cpp
105   ${dali_csharp_binder_dir}/src/animation.cpp
106   ${dali_csharp_binder_dir}/src/adaptor.cpp
107   ${dali_csharp_binder_dir}/src/extents.cpp
108   ${dali_csharp_binder_dir}/src/text-label.cpp
109   ${dali_csharp_binder_dir}/src/text-utils.cpp
110   ${dali_csharp_binder_dir}/src/dali_wrap.cpp
111 )
112
113 add_library(${name} SHARED ${SOURCES})
114 target_link_libraries(${name} ${REQUIRED_LIBS})
115
116 set_target_properties(${name}
117   PROPERTIES
118   VERSION ${${name}_VERSION}
119   SOVERSION ${${name}_VERSION_MAJOR}
120   CLEAN_DIRECT_OUPUT 1
121 )
122
123 # Install the pdb file.
124 if( ${CMAKE_BUILD_TYPE} MATCHES Debug )
125   set(BIN_DIR ${BIN_DIR}/debug)
126   set(LIB_DIR ${LIB_DIR}/debug)
127   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Debug/${name}.pdb DESTINATION ${BIN_DIR} )
128 endif()
129
130 # Install the library so file and symlinks
131 install( TARGETS ${name}
132   LIBRARY DESTINATION ${LIB_DIR}
133   ARCHIVE DESTINATION ${LIB_DIR}
134   RUNTIME DESTINATION ${BIN_DIR}
135 )