Merge pull request #3337 from ronald-cron-arm/include_directories
CMake build system: Declare include directories at the target level.
This commit is contained in:
commit
6d3f20d66b
8
3rdparty/CMakeLists.txt
vendored
8
3rdparty/CMakeLists.txt
vendored
@ -1,11 +1,17 @@
|
|||||||
list (APPEND thirdparty_src)
|
list (APPEND thirdparty_src)
|
||||||
list (APPEND thirdparty_lib)
|
list (APPEND thirdparty_lib)
|
||||||
|
list (APPEND thirdparty_inc_public)
|
||||||
list (APPEND thirdparty_inc)
|
list (APPEND thirdparty_inc)
|
||||||
list (APPEND thirdparty_def)
|
list (APPEND thirdparty_def)
|
||||||
|
|
||||||
add_subdirectory(everest)
|
execute_process(COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/config.py -f ${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls/config.h get MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED RESULT_VARIABLE result)
|
||||||
|
|
||||||
|
if(${result} EQUAL 0)
|
||||||
|
add_subdirectory(everest)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(thirdparty_src ${thirdparty_src} PARENT_SCOPE)
|
set(thirdparty_src ${thirdparty_src} PARENT_SCOPE)
|
||||||
set(thirdparty_lib ${thirdparty_lib} PARENT_SCOPE)
|
set(thirdparty_lib ${thirdparty_lib} PARENT_SCOPE)
|
||||||
|
set(thirdparty_inc_public ${thirdparty_inc_public} PARENT_SCOPE)
|
||||||
set(thirdparty_inc ${thirdparty_inc} PARENT_SCOPE)
|
set(thirdparty_inc ${thirdparty_inc} PARENT_SCOPE)
|
||||||
set(thirdparty_def ${thirdparty_def} PARENT_SCOPE)
|
set(thirdparty_def ${thirdparty_def} PARENT_SCOPE)
|
||||||
|
25
3rdparty/everest/CMakeLists.txt
vendored
25
3rdparty/everest/CMakeLists.txt
vendored
@ -1,4 +1,5 @@
|
|||||||
list (APPEND everest_src)
|
list (APPEND everest_src)
|
||||||
|
list (APPEND everest_inc_public)
|
||||||
list (APPEND everest_inc)
|
list (APPEND everest_inc)
|
||||||
list (APPEND everest_def)
|
list (APPEND everest_def)
|
||||||
|
|
||||||
@ -8,24 +9,20 @@ set(everest_src
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/library/Hacl_Curve25519_joined.c
|
${CMAKE_CURRENT_SOURCE_DIR}/library/Hacl_Curve25519_joined.c
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND everest_inc ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/everest ${CMAKE_CURRENT_SOURCE_DIR}/include/everest/kremlib)
|
list(APPEND everest_inc_public ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||||
|
list(APPEND everest_inc ${CMAKE_CURRENT_SOURCE_DIR}/include/everest ${CMAKE_CURRENT_SOURCE_DIR}/include/everest/kremlib)
|
||||||
|
|
||||||
execute_process(COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/config.py -f ${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/config.h get MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED RESULT_VARIABLE result)
|
if(INSTALL_MBEDTLS_HEADERS)
|
||||||
|
|
||||||
if(${result} EQUAL 0)
|
install(DIRECTORY include/everest
|
||||||
|
DESTINATION include
|
||||||
|
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
||||||
|
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
FILES_MATCHING PATTERN "*.h")
|
||||||
|
|
||||||
if(INSTALL_MBEDTLS_HEADERS)
|
endif(INSTALL_MBEDTLS_HEADERS)
|
||||||
|
|
||||||
install(DIRECTORY include/everest
|
|
||||||
DESTINATION include
|
|
||||||
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
||||||
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
||||||
FILES_MATCHING PATTERN "*.h")
|
|
||||||
|
|
||||||
endif(INSTALL_MBEDTLS_HEADERS)
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(thirdparty_src ${thirdparty_src} ${everest_src} PARENT_SCOPE)
|
set(thirdparty_src ${thirdparty_src} ${everest_src} PARENT_SCOPE)
|
||||||
|
set(thirdparty_inc_public ${thirdparty_inc_public} ${everest_inc_public} PARENT_SCOPE)
|
||||||
set(thirdparty_inc ${thirdparty_inc} ${everest_inc} PARENT_SCOPE)
|
set(thirdparty_inc ${thirdparty_inc} ${everest_inc} PARENT_SCOPE)
|
||||||
set(thirdparty_def ${thirdparty_def} ${everest_def} PARENT_SCOPE)
|
set(thirdparty_def ${thirdparty_def} ${everest_def} PARENT_SCOPE)
|
||||||
|
@ -1,3 +1,21 @@
|
|||||||
|
#
|
||||||
|
# CMake build system design considerations:
|
||||||
|
#
|
||||||
|
# - Include directories:
|
||||||
|
# + Do not define include directories globally using the include_directories
|
||||||
|
# command but rather at the target level using the
|
||||||
|
# target_include_directories command. That way, it is easier to guarantee
|
||||||
|
# that targets are built using the proper list of include directories.
|
||||||
|
# + Use the PUBLIC and PRIVATE keywords to specifiy the scope of include
|
||||||
|
# directories. That way, a target linking to a library (using the
|
||||||
|
# target_link_librairies command) inherits from the library PUBLIC include
|
||||||
|
# directories and not from the PRIVATE ones.
|
||||||
|
# + Note: there is currently one remaining include_directories command in the
|
||||||
|
# CMake files. It is related to ZLIB support which is planned to be removed.
|
||||||
|
# When the support is removed, the associated include_directories command
|
||||||
|
# will be removed as well as this note.
|
||||||
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
if(TEST_CPP)
|
if(TEST_CPP)
|
||||||
project("mbed TLS" C CXX)
|
project("mbed TLS" C CXX)
|
||||||
@ -205,9 +223,6 @@ else()
|
|||||||
set(LIB_INSTALL_DIR lib)
|
set(LIB_INSTALL_DIR lib)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(include/)
|
|
||||||
include_directories(library/)
|
|
||||||
|
|
||||||
if(ENABLE_ZLIB_SUPPORT)
|
if(ENABLE_ZLIB_SUPPORT)
|
||||||
find_package(ZLIB)
|
find_package(ZLIB)
|
||||||
|
|
||||||
@ -219,9 +234,7 @@ endif(ENABLE_ZLIB_SUPPORT)
|
|||||||
add_subdirectory(include)
|
add_subdirectory(include)
|
||||||
|
|
||||||
add_subdirectory(3rdparty)
|
add_subdirectory(3rdparty)
|
||||||
include_directories(${thirdparty_inc})
|
|
||||||
list(APPEND libs ${thirdparty_lib})
|
list(APPEND libs ${thirdparty_lib})
|
||||||
add_definitions(${thirdparty_def})
|
|
||||||
|
|
||||||
add_subdirectory(library)
|
add_subdirectory(library)
|
||||||
|
|
||||||
|
@ -163,15 +163,23 @@ if(USE_STATIC_MBEDTLS_LIBRARY)
|
|||||||
set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto)
|
set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto)
|
||||||
target_link_libraries(${mbedcrypto_static_target} ${libs})
|
target_link_libraries(${mbedcrypto_static_target} ${libs})
|
||||||
target_include_directories(${mbedcrypto_static_target}
|
target_include_directories(${mbedcrypto_static_target}
|
||||||
PUBLIC ${MBEDTLS_DIR}/include/)
|
PUBLIC ${MBEDTLS_DIR}/include/
|
||||||
|
PUBLIC ${thirdparty_inc_public}
|
||||||
|
PRIVATE ${thirdparty_inc})
|
||||||
|
target_compile_definitions(${mbedcrypto_static_target}
|
||||||
|
PRIVATE ${thirdparty_def})
|
||||||
|
|
||||||
add_library(${mbedx509_static_target} STATIC ${src_x509})
|
add_library(${mbedx509_static_target} STATIC ${src_x509})
|
||||||
set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
|
set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
|
||||||
target_link_libraries(${mbedx509_static_target} ${libs} ${mbedcrypto_static_target})
|
target_link_libraries(${mbedx509_static_target} ${libs} ${mbedcrypto_static_target})
|
||||||
|
target_include_directories(${mbedx509_static_target}
|
||||||
|
PUBLIC ${MBEDTLS_DIR}/include/)
|
||||||
|
|
||||||
add_library(${mbedtls_static_target} STATIC ${src_tls})
|
add_library(${mbedtls_static_target} STATIC ${src_tls})
|
||||||
set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
|
set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
|
||||||
target_link_libraries(${mbedtls_static_target} ${libs} ${mbedx509_static_target})
|
target_link_libraries(${mbedtls_static_target} ${libs} ${mbedx509_static_target})
|
||||||
|
target_include_directories(${mbedtls_static_target}
|
||||||
|
PUBLIC ${MBEDTLS_DIR}/include/)
|
||||||
|
|
||||||
install(TARGETS ${mbedtls_static_target} ${mbedx509_static_target} ${mbedcrypto_static_target}
|
install(TARGETS ${mbedtls_static_target} ${mbedx509_static_target} ${mbedcrypto_static_target}
|
||||||
DESTINATION ${LIB_INSTALL_DIR}
|
DESTINATION ${LIB_INSTALL_DIR}
|
||||||
@ -184,7 +192,11 @@ if(USE_SHARED_MBEDTLS_LIBRARY)
|
|||||||
set_target_properties(mbedcrypto PROPERTIES VERSION 2.22.0 SOVERSION 4)
|
set_target_properties(mbedcrypto PROPERTIES VERSION 2.22.0 SOVERSION 4)
|
||||||
target_link_libraries(mbedcrypto ${libs})
|
target_link_libraries(mbedcrypto ${libs})
|
||||||
target_include_directories(mbedcrypto
|
target_include_directories(mbedcrypto
|
||||||
PUBLIC ${MBEDTLS_DIR}/include/)
|
PUBLIC ${MBEDTLS_DIR}/include/
|
||||||
|
PUBLIC ${thirdparty_inc_public}
|
||||||
|
PRIVATE ${thirdparty_inc})
|
||||||
|
target_compile_definitions(mbedcrypto
|
||||||
|
PRIVATE ${thirdparty_def})
|
||||||
|
|
||||||
add_library(mbedx509 SHARED ${src_x509})
|
add_library(mbedx509 SHARED ${src_x509})
|
||||||
set_target_properties(mbedx509 PROPERTIES VERSION 2.22.0 SOVERSION 1)
|
set_target_properties(mbedx509 PROPERTIES VERSION 2.22.0 SOVERSION 1)
|
||||||
|
@ -48,7 +48,10 @@ function(add_test_suite suite_name)
|
|||||||
|
|
||||||
add_executable(test_suite_${data_name} test_suite_${data_name}.c $<TARGET_OBJECTS:mbedtests>)
|
add_executable(test_suite_${data_name} test_suite_${data_name}.c $<TARGET_OBJECTS:mbedtests>)
|
||||||
target_link_libraries(test_suite_${data_name} ${libs})
|
target_link_libraries(test_suite_${data_name} ${libs})
|
||||||
target_include_directories(test_suite_${data_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
target_include_directories(test_suite_${data_name}
|
||||||
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../library)
|
||||||
|
|
||||||
if(${data_name} MATCHES ${SKIP_TEST_SUITES_REGEX})
|
if(${data_name} MATCHES ${SKIP_TEST_SUITES_REGEX})
|
||||||
message(STATUS "The test suite ${data_name} will not be executed.")
|
message(STATUS "The test suite ${data_name} will not be executed.")
|
||||||
else()
|
else()
|
||||||
@ -68,7 +71,10 @@ endif(MSVC)
|
|||||||
|
|
||||||
file(GLOB MBEDTESTS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.c)
|
file(GLOB MBEDTESTS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.c)
|
||||||
add_library(mbedtests OBJECT ${MBEDTESTS_FILES})
|
add_library(mbedtests OBJECT ${MBEDTESTS_FILES})
|
||||||
target_include_directories(mbedtests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
target_include_directories(mbedtests
|
||||||
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../include
|
||||||
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../library)
|
||||||
|
|
||||||
add_test_suite(aes aes.cbc)
|
add_test_suite(aes aes.cbc)
|
||||||
add_test_suite(aes aes.cfb)
|
add_test_suite(aes aes.cfb)
|
||||||
|
Loading…
Reference in New Issue
Block a user