1
+ cmake_minimum_required (VERSION 2.8.12)
2
+
3
+ cmake_policy (SET CMP0042 NEW)
4
+ cmake_policy (SET CMP0028 NEW)
5
+
6
+ cm_project(ffi WORKSPACE_NAME ${CMAKE_WORKSPACE_NAME} )
7
+
8
+ cm_find_package(CM)
9
+ include (CMDeploy)
10
+ include (CMSetupVersion)
11
+
12
+ cm_find_package(${CMAKE_WORKSPACE_NAME} _pbkdf)
13
+ cm_find_package(${CMAKE_WORKSPACE_NAME} _pubkey)
14
+ cm_find_package(${CMAKE_WORKSPACE_NAME} _codec)
15
+ cm_find_package(${CMAKE_WORKSPACE_NAME} _modes)
16
+
17
+ list (APPEND ${CURRENT_PROJECT_NAME} _PUBLIC_HEADERS
18
+ include /nil/crypto3/ffi/ffi.h
19
+ include /nil/crypto3/ffi/ffi_mp.h
20
+ include /nil/crypto3/ffi/ffi_pkey.h
21
+ include /nil/crypto3/ffi/ffi_rng.h
22
+ include /nil/crypto3/ffi/ffi_util.h)
23
+
24
+ list (APPEND ${CURRENT_PROJECT_NAME} _UNGROUPED_SOURCES
25
+ src/ffi.cpp
26
+ src/ffi_block.cpp
27
+ src/ffi_cipher.cpp
28
+ src/ffi_hash.cpp
29
+ src/ffi_kdf.cpp
30
+ src/ffi_keywrap.cpp
31
+ src/ffi_mac.cpp
32
+ src/ffi_mp.cpp
33
+ src/ffi_pk_op.cpp
34
+ src/ffi_pkey.cpp
35
+ src/ffi_pkey_algs.cpp
36
+ src/ffi_rng.cpp)
37
+
38
+ list (APPEND ${CURRENT_PROJECT_NAME} _HEADERS
39
+ ${${CURRENT_PROJECT_NAME} _PUBLIC_HEADERS})
40
+
41
+ list (APPEND ${CURRENT_PROJECT_NAME} _SOURCES
42
+ ${${CURRENT_PROJECT_NAME} _UNGROUPED_SOURCES})
43
+
44
+ cm_setup_version(VERSION 0.1.0 PREFIX ${CMAKE_WORKSPACE_NAME} _${CURRENT_PROJECT_NAME} )
45
+
46
+ add_library (${CMAKE_WORKSPACE_NAME} _${CURRENT_PROJECT_NAME}
47
+ ${${CURRENT_PROJECT_NAME} _HEADERS}
48
+ ${${CURRENT_PROJECT_NAME} _SOURCES})
49
+
50
+ set_target_properties (${CMAKE_WORKSPACE_NAME} _${CURRENT_PROJECT_NAME} PROPERTIES
51
+ CXX_STANDARD 17
52
+ CXX_STANDARD_REQUIRED TRUE )
53
+
54
+ target_include_directories (${CMAKE_WORKSPACE_NAME} _${CURRENT_PROJECT_NAME} PRIVATE
55
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
56
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
57
+ "$<BUILD_INTERFACE:${CMAKE_BINARY_DIR} /include>" )
58
+
59
+ target_link_libraries (${CMAKE_WORKSPACE_NAME} _${CURRENT_PROJECT_NAME} PUBLIC
60
+ ${CMAKE_WORKSPACE_NAME} ::pbkdf
61
+ ${CMAKE_WORKSPACE_NAME} ::pubkey
62
+ ${CMAKE_WORKSPACE_NAME} ::codec
63
+ ${CMAKE_WORKSPACE_NAME} ::modes)
64
+
65
+ cm_deploy(TARGETS ${CMAKE_WORKSPACE_NAME} _${CURRENT_PROJECT_NAME} INCLUDE include /public include /private NAMESPACE ${CMAKE_WORKSPACE_NAME} ::)
66
+
67
+ if (APPLE OR NOT ${CMAKE_TARGET_ARCHITECTURE} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR} )
68
+ set_target_properties (${CMAKE_WORKSPACE_NAME} _${CURRENT_PROJECT_NAME} PROPERTIES
69
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${APPLE_CODE_SIGN_IDENTITY} "
70
+ XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "${CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM} " )
71
+ endif ()
0 commit comments