1 cmake_minimum_required(VERSION 3.1)
3 set(CMAKE_CXX_STANDARD 17)
4 set(CMAKE_C_STANDARD 99)
6 set(name "dali2-csharp-binder")
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})
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'"
20 add_definitions(-D_USE_MATH_DEFINES)
22 set(VCPKG_INCLUDE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
24 find_package( pthreads REQUIRED )
25 find_package( curl REQUIRED )
26 find_library( GETOPT_LIBRARY NAMES getopt )
27 find_library( EXIF_LIBRARY NAMES libexif )
29 find_package( png REQUIRED )
30 find_package( gif REQUIRED )
31 find_package( jpeg REQUIRED )
32 find_library( TURBO_JPEG_LIBRARY NAMES turbojpeg )
34 find_package( unofficial-fontconfig REQUIRED )
35 find_package( freetype REQUIRED )
36 find_package( harfbuzz REQUIRED )
37 find_library( FRIBIDI_LIBRARY NAMES fribidi )
39 find_package( unofficial-angle REQUIRED )
40 find_package( unofficial-cairo REQUIRED )
42 find_package( WebP REQUIRED )
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 )
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 )
55 PThreads4W::PThreads4W
63 unofficial::fontconfig::fontconfig
67 unofficial::angle::libEGL
68 unofficial::angle::libGLESv2
69 unofficial::cairo::cairo
72 dali-windows-dependencies::dali-windows-dependencies
73 dali2-core::dali2-core
74 dali2-adaptor::dali2-adaptor
75 dali2-toolkit::dali2-toolkit
80 ${CMAKE_INSTALL_PREFIX}/include
84 link_directories(${LIB_DIR})
86 set(dali_csharp_binder_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../dali-csharp-binder)
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
113 add_library(${name} SHARED ${SOURCES})
114 target_link_libraries(${name} ${REQUIRED_LIBS})
116 set_target_properties(${name}
118 VERSION ${${name}_VERSION}
119 SOVERSION ${${name}_VERSION_MAJOR}
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} )
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}