Skip to content
This repository was archived by the owner on Feb 17, 2025. It is now read-only.

Commit 2ea4bc1

Browse files
committed
Initial implementation draft done #23
1 parent 49ba1de commit 2ea4bc1

21 files changed

+3495
-3
lines changed

libs/ffi/CMakeLists.txt

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
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

Comments
 (0)