Skip to content

Commit ef67a8e

Browse files
committed
build: reworks cryptographic modules to be in a plugins path and not rely on cryptoface being in the same namespace
1 parent 68e9e9d commit ef67a8e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+90
-28
lines changed

CMakeLists.txt

+13-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ cmake_minimum_required(VERSION 2.6)
22
project(cryptoface C CXX)
33
#C++ enabled for the few projects that consume it
44

5-
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
5+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
6+
7+
set(CF_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}/Modules)
8+
9+
set(CMAKE_MODULE_PATH ${CF_MODULE_PATH} ${CMAKE_MODULE_PATH})
610

711
include(CMakeDependentOption)
812

@@ -38,35 +42,35 @@ ENDIF(NOT WIN32)
3842
ADD_SUBDIRECTORY(cryptoface)
3943

4044
IF(BUILD_CF_BEECRYPT)
41-
ADD_SUBDIRECTORY(cf_beecrypt)
45+
ADD_SUBDIRECTORY(plugins/cf_beecrypt)
4246
ENDIF(BUILD_CF_BEECRYPT)
4347

4448
IF(BUILD_CF_BOTAN)
45-
ADD_SUBDIRECTORY(cf_botan)
49+
ADD_SUBDIRECTORY(plugins/cf_botan)
4650
ENDIF(BUILD_CF_BOTAN)
4751

4852
IF(BUILD_CF_CRYPTOPP)
49-
ADD_SUBDIRECTORY(cf_cryptopp)
53+
ADD_SUBDIRECTORY(plugins/cf_cryptopp)
5054
ENDIF(BUILD_CF_CRYPTOPP)
5155

5256
IF(BUILD_CF_MHASH)
53-
ADD_SUBDIRECTORY(cf_mhash)
57+
ADD_SUBDIRECTORY(plugins/cf_mhash)
5458
ENDIF(BUILD_CF_MHASH)
5559

5660
IF(BUILD_CF_NETTLE)
57-
ADD_SUBDIRECTORY(cf_nettle)
61+
ADD_SUBDIRECTORY(plugins/cf_nettle)
5862
ENDIF(BUILD_CF_NETTLE)
5963

6064
IF(BUILD_CF_TOMCRYPT)
61-
ADD_SUBDIRECTORY(cf_tomcrypt)
65+
ADD_SUBDIRECTORY(plugins/cf_tomcrypt)
6266
ENDIF(BUILD_CF_TOMCRYPT)
6367

6468
IF(BUILD_CF_GCRYPT)
65-
ADD_SUBDIRECTORY(cf_gcrypt)
69+
ADD_SUBDIRECTORY(plugins/cf_gcrypt)
6670
ENDIF(BUILD_CF_GCRYPT)
6771

6872
IF(BUILD_CF_OPENSSL)
69-
ADD_SUBDIRECTORY(cf_openssl)
73+
ADD_SUBDIRECTORY(plugins/cf_openssl)
7074
ENDIF(BUILD_CF_OPENSSL)
7175
IF(BUILD_LUACF)
7276
ADD_SUBDIRECTORY(luacf)

cryptoface/CMakeLists.txt

+20-1
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cryptoface_core C)
33

4+
set(CRYPTOFACE_VERSION 0.0.0)
5+
6+
include(WriteBasicConfigVersionFile)
7+
48
SET(SOURCES
59
src/provider.c
610
src/digest.c
711
src/module_loader.c
812
)
9-
SET(HEADERS
13+
SET(PUBLIC_HEADERS
1014
include/cryptoface.h
1115
include/provider.h
1216
include/digest.h
1317
include/cryptoface_impl.h
18+
include/digest_impl.h
1419
include/module_loader.h
1520
)
21+
SET(HEADERS
22+
${PUBLIC_HEADERS}
23+
)
1624

1725
add_library(cryptoface SHARED ${SOURCES} ${HEADERS})
1826

@@ -21,3 +29,14 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR APPLE)
2129
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR APPLE)
2230

2331
include_directories(include)
32+
33+
file(COPY ${PUBLIC_HEADERS} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
34+
35+
get_filename_component(CRYPTOFACE_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} ABSOLUTE)
36+
configure_file(cryptoface-config.cmake.in ${CF_MODULE_PATH}/cryptoface-config.cmake @ONLY)
37+
export(TARGETS cryptoface APPEND FILE ${CF_MODULE_PATH}/cryptoface-config.cmake)
38+
WRITE_BASIC_CONFIG_VERSION_FILE(
39+
${CF_MODULE_PATH}/cryptoface-config-version.cmake
40+
VERSION ${CRYPTOFACE_VERSION}
41+
COMPATIBILITY SameMajorVersion)
42+

cf_beecrypt/CMakeLists.txt plugins/cf_beecrypt/CMakeLists.txt

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cf_beecrypt C)
33

4+
find_package(cryptoface REQUIRED CONFIG PATHS ${CMAKE_MODULE_PATH})
45
find_package(BeeCrypt REQUIRED)
56

67
SET(SOURCES
@@ -20,8 +21,12 @@ set_target_properties(cf_beecrypt
2021
COMPILE_FLAGS "${BEECRYPT_C_FLAGS}"
2122
LINK_FLAGS "${BEECRYPT_LINK_FLAGS}")
2223

23-
target_link_libraries(cf_beecrypt cryptoface)
24+
target_link_libraries(cf_beecrypt ${CRYPTOFACE_LIBRARIES})
2425

2526
target_link_libraries(cf_beecrypt ${BEECRYPT_LIBRARIES})
2627

27-
include_directories(include ../cryptoface/include ${BEECRYPT_INCLUDE_DIR})
28+
include_directories(
29+
include
30+
${CRYPTOFACE_INCLUDE_DIRS}
31+
${BEECRYPT_INCLUDE_DIR}
32+
)
File renamed without changes.

cf_botan/CMakeLists.txt plugins/cf_botan/CMakeLists.txt

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cf_botan CXX)
33

4+
find_package(cryptoface REQUIRED CONFIG PATHS ${CMAKE_MODULE_PATH})
45
find_package(Botan REQUIRED)
56

67
SET(SOURCES
@@ -19,8 +20,12 @@ set_target_properties(cf_botan
1920
PREFIX ""
2021
COMPILE_FLAGS "${BOTAN_CFLAGS}")
2122

22-
target_link_libraries(cf_botan cryptoface)
23+
target_link_libraries(cf_botan ${CRYPTOFACE_LIBRARIES})
2324

2425
target_link_libraries(cf_botan ${BOTAN_LIBRARIES})
2526

26-
include_directories(include ../cryptoface/include ${BOTAN_INCLUDE_DIR})
27+
include_directories(
28+
include
29+
${CRYPTOFACE_INCLUDE_DIRS}
30+
${BOTAN_INCLUDE_DIR}
31+
)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

cf_cryptopp/CMakeLists.txt plugins/cf_cryptopp/CMakeLists.txt

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cf_cryptopp CXX)
33

4+
find_package(cryptoface REQUIRED CONFIG PATHS ${CMAKE_MODULE_PATH})
45
find_package(Crypto++ REQUIRED)
56

67
SET(SOURCES
@@ -19,8 +20,12 @@ set_target_properties(cf_cryptopp
1920
PROPERTIES
2021
PREFIX "")
2122

22-
target_link_libraries(cf_cryptopp cryptoface)
23+
target_link_libraries(cf_cryptopp ${CRYPTOFACE_LIBRARIES})
2324

2425
target_link_libraries(cf_cryptopp ${CRYPTO++_LIBRARIES})
2526

26-
include_directories(include ../cryptoface/include ${CRYPTO++_INCLUDE_DIR})
27+
include_directories(
28+
include
29+
${CRYPTOFACE_INCLUDE_DIRS}
30+
${CRYPTO++_INCLUDE_DIR}
31+
)
File renamed without changes.

cf_gcrypt/CMakeLists.txt plugins/cf_gcrypt/CMakeLists.txt

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cf_gcrypt C)
33

4+
find_package(cryptoface REQUIRED CONFIG PATHS ${CMAKE_MODULE_PATH})
45
find_package(gcrypt REQUIRED)
56

67
SET(SOURCES
@@ -17,7 +18,12 @@ set_target_properties(cf_gcrypt
1718
PROPERTIES
1819
PREFIX "")
1920

20-
target_link_libraries(cf_gcrypt cryptoface)
21+
target_link_libraries(cf_gcrypt ${CRYPTOFACE_LIBRARIES})
22+
2123
target_link_libraries(cf_gcrypt ${GCRYPT_LIBRARIES})
2224

23-
include_directories(include ../cryptoface/include ${GCRYPT_INCLUDE_DIR})
25+
include_directories(
26+
include
27+
${CRYPTOFACE_INCLUDE_DIRS}
28+
${GCRYPT_INCLUDE_DIR}
29+
)
File renamed without changes.
File renamed without changes.
File renamed without changes.

cf_mhash/CMakeLists.txt plugins/cf_mhash/CMakeLists.txt

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cf_mhash C)
33

4+
find_package(cryptoface REQUIRED CONFIG PATHS ${CMAKE_MODULE_PATH})
45
find_package(MHASH REQUIRED)
56

67
SET(SOURCES
@@ -17,7 +18,12 @@ set_target_properties(cf_mhash
1718
PROPERTIES
1819
PREFIX "")
1920

20-
target_link_libraries(cf_mhash cryptoface)
21+
target_link_libraries(cf_mhash ${CRYPTOFACE_LIBRARIES})
22+
2123
target_link_libraries(cf_mhash ${MHASH_LIBRARIES})
2224

23-
include_directories(include ../cryptoface/include ${MHASH_INCLUDE_DIR})
25+
include_directories(
26+
include
27+
${CRYPTOFACE_INCLUDE_DIRS}
28+
${MHASH_INCLUDE_DIR}
29+
)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

cf_nettle/CMakeLists.txt plugins/cf_nettle/CMakeLists.txt

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cf_nettle C)
33

4+
find_package(cryptoface REQUIRED CONFIG PATHS ${CMAKE_MODULE_PATH})
45
find_package(Nettle REQUIRED)
56

67
SET(SOURCES
@@ -19,12 +20,12 @@ set_target_properties(cf_nettle
1920
PROPERTIES
2021
PREFIX "")
2122

22-
target_link_libraries(cf_nettle cryptoface)
23+
target_link_libraries(cf_nettle ${CRYPTOFACE_LIBRARIES})
2324

2425
target_link_libraries(cf_nettle ${NETTLE_LIBRARIES})
2526

2627
include_directories(
27-
include
28-
../cryptoface/include
29-
${NETTLE_INCLUDE_DIR}
28+
include
29+
${CRYPTOFACE_INCLUDE_DIRS}
30+
${NETTLE_INCLUDE_DIR}
3031
)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

cf_openssl/CMakeLists.txt plugins/cf_openssl/CMakeLists.txt

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cf_openssl C)
33

4+
find_package(cryptoface REQUIRED CONFIG PATHS ${CMAKE_MODULE_PATH})
45
find_package(OpenSSL REQUIRED)
56

67
SET(SOURCES
@@ -17,8 +18,12 @@ set_target_properties(cf_openssl
1718
PROPERTIES
1819
PREFIX "")
1920

20-
target_link_libraries(cf_openssl cryptoface)
21+
target_link_libraries(cf_openssl ${CRYPTOFACE_LIBRARIES})
2122

2223
target_link_libraries(cf_openssl ${OPENSSL_LIBCRYPTO})
2324

24-
include_directories(include ../cryptoface/include ${OPENSSL_INCLUDE_DIR})
25+
include_directories(
26+
include
27+
${CRYPTOFACE_INCLUDE_DIRS}
28+
${OPENSSL_INCLUDE_DIR}
29+
)
File renamed without changes.
File renamed without changes.

cf_tomcrypt/CMakeLists.txt plugins/cf_tomcrypt/CMakeLists.txt

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cmake_minimum_required(VERSION 2.6)
22
project(cf_tomcrypt C)
33

4+
find_package(cryptoface REQUIRED CONFIG PATHS ${CMAKE_MODULE_PATH})
45
find_package(TomCrypt REQUIRED)
56

67
SET(SOURCES
@@ -18,7 +19,12 @@ set_target_properties(cf_tomcrypt
1819
PROPERTIES
1920
PREFIX "")
2021

21-
target_link_libraries(cf_tomcrypt cryptoface)
22+
target_link_libraries(cf_tomcrypt ${CRYPTOFACE_LIBRARIES})
23+
2224
target_link_libraries(cf_tomcrypt ${TOMCRYPT_LIBRARIES})
2325

24-
include_directories(include ../cryptoface/include ${TOMCRYPT_INCLUDE_DIR})
26+
include_directories(
27+
include
28+
${CRYPTOFACE_INCLUDE_DIRS}
29+
${TOMCRYPT_INCLUDE_DIR}
30+
)
File renamed without changes.

0 commit comments

Comments
 (0)