mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 08:45:40 +01:00
Build: Add MBEDTLS_TARGET_PREFIX
Allows required targets to have prefixes added to them, so that external projects can avoid target names clashing. Signed-off-by: Raef Coles <raef.coles@arm.com>
This commit is contained in:
parent
8f24a8bb34
commit
995c66f702
@ -14,6 +14,10 @@
|
|||||||
# CMake files. It is related to ZLIB support which is planned to be removed.
|
# CMake files. It is related to ZLIB support which is planned to be removed.
|
||||||
# When the support is removed, the associated include_directories command
|
# When the support is removed, the associated include_directories command
|
||||||
# will be removed as well as this note.
|
# will be removed as well as this note.
|
||||||
|
# - MBEDTLS_TARGET_PREFIX: CMake targets are designed to be alterable by calling
|
||||||
|
# CMake in order to avoid target name clashes, via the use of
|
||||||
|
# MBEDTLS_TARGET_PREFIX. The value of this variable is prefixed to the
|
||||||
|
# mbedtls, mbedx509, mbedcrypto and apidoc targets.
|
||||||
#
|
#
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
@ -273,7 +277,7 @@ if(ENABLE_PROGRAMS)
|
|||||||
add_subdirectory(programs)
|
add_subdirectory(programs)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(apidoc
|
ADD_CUSTOM_TARGET(${MBEDTLS_TARGET_PREFIX}apidoc
|
||||||
COMMAND doxygen mbedtls.doxyfile
|
COMMAND doxygen mbedtls.doxyfile
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doxygen)
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doxygen)
|
||||||
|
|
||||||
|
6
ChangeLog.d/add_MBEDTLS_TARGET_PREFIX_to_cmake.txt
Normal file
6
ChangeLog.d/add_MBEDTLS_TARGET_PREFIX_to_cmake.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Features
|
||||||
|
* Add MBEDTLS_TARGET_PREFIX CMake variable, which is prefixed to the mbedtls,
|
||||||
|
mbedcrypto, mbedx509 and apidoc CMake target names. This can be used by
|
||||||
|
external CMake projects that include this one to avoid CMake target name
|
||||||
|
clashes. The default value of this variable is "", so default target names
|
||||||
|
are unchanged.
|
@ -150,18 +150,31 @@ if (NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
|
|||||||
message(FATAL_ERROR "Need to choose static or shared mbedtls build!")
|
message(FATAL_ERROR "Need to choose static or shared mbedtls build!")
|
||||||
endif(NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
|
endif(NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
|
||||||
|
|
||||||
set(target_libraries "mbedcrypto" "mbedx509" "mbedtls")
|
set(mbedtls_target "${MBEDTLS_TARGET_PREFIX}mbedtls")
|
||||||
|
set(mbedx509_target "${MBEDTLS_TARGET_PREFIX}mbedx509")
|
||||||
|
set(mbedcrypto_target "${MBEDTLS_TARGET_PREFIX}mbedcrypto")
|
||||||
|
|
||||||
|
set(mbedtls_target ${mbedtls_target} PARENT_SCOPE)
|
||||||
|
set(mbedx509_target ${mbedx509_target} PARENT_SCOPE)
|
||||||
|
set(mbedcrypto_target ${mbedcrypto_target} PARENT_SCOPE)
|
||||||
|
|
||||||
|
if (USE_STATIC_MBEDTLS_LIBRARY)
|
||||||
|
set(mbedtls_static_target ${mbedtls_target})
|
||||||
|
set(mbedx509_static_target ${mbedx509_target})
|
||||||
|
set(mbedcrypto_static_target ${mbedcrypto_target})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(target_libraries ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
|
||||||
|
|
||||||
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
|
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
|
||||||
set(mbedtls_static_target "mbedtls_static")
|
string(APPEND mbedtls_static_target "_static")
|
||||||
set(mbedx509_static_target "mbedx509_static")
|
string(APPEND mbedx509_static_target "_static")
|
||||||
set(mbedcrypto_static_target "mbedcrypto_static")
|
string(APPEND mbedcrypto_static_target "_static")
|
||||||
|
|
||||||
list(APPEND target_libraries
|
list(APPEND target_libraries
|
||||||
"mbedcrypto_static" "mbedx509_static" "mbedtls_static")
|
${mbedcrypto_static_target}
|
||||||
elseif(USE_STATIC_MBEDTLS_LIBRARY)
|
${mbedx509_static_target}
|
||||||
set(mbedtls_static_target "mbedtls")
|
${mbedtls_static_target})
|
||||||
set(mbedx509_static_target "mbedx509")
|
|
||||||
set(mbedcrypto_static_target "mbedcrypto")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(USE_STATIC_MBEDTLS_LIBRARY)
|
if(USE_STATIC_MBEDTLS_LIBRARY)
|
||||||
@ -179,17 +192,17 @@ if(USE_STATIC_MBEDTLS_LIBRARY)
|
|||||||
endif(USE_STATIC_MBEDTLS_LIBRARY)
|
endif(USE_STATIC_MBEDTLS_LIBRARY)
|
||||||
|
|
||||||
if(USE_SHARED_MBEDTLS_LIBRARY)
|
if(USE_SHARED_MBEDTLS_LIBRARY)
|
||||||
add_library(mbedcrypto SHARED ${src_crypto})
|
add_library(${mbedcrypto_target} SHARED ${src_crypto})
|
||||||
set_target_properties(mbedcrypto PROPERTIES VERSION 2.24.0 SOVERSION 5)
|
set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 2.24.0 SOVERSION 5)
|
||||||
target_link_libraries(mbedcrypto ${libs})
|
target_link_libraries(${mbedcrypto_target} ${libs})
|
||||||
|
|
||||||
add_library(mbedx509 SHARED ${src_x509})
|
add_library(${mbedx509_target} SHARED ${src_x509})
|
||||||
set_target_properties(mbedx509 PROPERTIES VERSION 2.24.0 SOVERSION 1)
|
set_target_properties(${mbedx509_target} PROPERTIES VERSION 2.24.0 SOVERSION 1)
|
||||||
target_link_libraries(mbedx509 ${libs} mbedcrypto)
|
target_link_libraries(${mbedx509_target} ${libs} ${mbedcrypto_target})
|
||||||
|
|
||||||
add_library(mbedtls SHARED ${src_tls})
|
add_library(${mbedtls_target} SHARED ${src_tls})
|
||||||
set_target_properties(mbedtls PROPERTIES VERSION 2.24.0 SOVERSION 13)
|
set_target_properties(${mbedtls_target} PROPERTIES VERSION 2.24.0 SOVERSION 13)
|
||||||
target_link_libraries(mbedtls ${libs} mbedx509)
|
target_link_libraries(${mbedtls_target} ${libs} ${mbedx509_target})
|
||||||
endif(USE_SHARED_MBEDTLS_LIBRARY)
|
endif(USE_SHARED_MBEDTLS_LIBRARY)
|
||||||
|
|
||||||
foreach(target IN LISTS target_libraries)
|
foreach(target IN LISTS target_libraries)
|
||||||
@ -210,7 +223,9 @@ foreach(target IN LISTS target_libraries)
|
|||||||
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
|
||||||
endforeach(target)
|
endforeach(target)
|
||||||
|
|
||||||
add_custom_target(lib DEPENDS mbedcrypto mbedx509 mbedtls)
|
set(lib_target "${MBEDTLS_TARGET_PREFIX}lib")
|
||||||
|
|
||||||
|
add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
|
||||||
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
|
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
|
||||||
add_dependencies(lib mbedcrypto_static mbedx509_static mbedtls_static)
|
add_dependencies(${lib_target} ${mbedcrypto_static_target} ${mbedx509_static_target} ${mbedtls_static_target})
|
||||||
endif()
|
endif()
|
||||||
|
@ -5,7 +5,7 @@ set(executables
|
|||||||
|
|
||||||
foreach(exe IN LISTS executables)
|
foreach(exe IN LISTS executables)
|
||||||
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
||||||
target_link_libraries(${exe} mbedcrypto)
|
target_link_libraries(${exe} ${mbedcrypto_target})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
install(TARGETS ${executables}
|
install(TARGETS ${executables}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
set(libs
|
set(libs
|
||||||
mbedtls
|
${mbedtls_target}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(USE_PKCS11_HELPER_LIBRARY)
|
if(USE_PKCS11_HELPER_LIBRARY)
|
||||||
|
@ -5,7 +5,7 @@ set(executables
|
|||||||
|
|
||||||
foreach(exe IN LISTS executables)
|
foreach(exe IN LISTS executables)
|
||||||
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
||||||
target_link_libraries(${exe} mbedcrypto)
|
target_link_libraries(${exe} ${mbedcrypto_target})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
install(TARGETS ${executables}
|
install(TARGETS ${executables}
|
||||||
|
@ -5,7 +5,7 @@ set(executables_mbedtls
|
|||||||
|
|
||||||
foreach(exe IN LISTS executables_mbedtls)
|
foreach(exe IN LISTS executables_mbedtls)
|
||||||
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
||||||
target_link_libraries(${exe} mbedtls)
|
target_link_libraries(${exe} ${mbedtls_target})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
set(executables_mbedcrypto
|
set(executables_mbedcrypto
|
||||||
@ -31,7 +31,7 @@ set(executables_mbedcrypto
|
|||||||
|
|
||||||
foreach(exe IN LISTS executables_mbedcrypto)
|
foreach(exe IN LISTS executables_mbedcrypto)
|
||||||
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
||||||
target_link_libraries(${exe} mbedcrypto)
|
target_link_libraries(${exe} ${mbedcrypto_target})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
install(TARGETS ${executables_mbedtls} ${executables_mbedcrypto}
|
install(TARGETS ${executables_mbedtls} ${executables_mbedcrypto}
|
||||||
|
@ -6,7 +6,7 @@ set(executables
|
|||||||
|
|
||||||
foreach(exe IN LISTS executables)
|
foreach(exe IN LISTS executables)
|
||||||
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
||||||
target_link_libraries(${exe} mbedcrypto)
|
target_link_libraries(${exe} ${mbedcrypto_target})
|
||||||
target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
|
target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ set(executables
|
|||||||
|
|
||||||
foreach(exe IN LISTS executables)
|
foreach(exe IN LISTS executables)
|
||||||
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
add_executable(${exe} ${exe}.c $<TARGET_OBJECTS:mbedtls_test>)
|
||||||
target_link_libraries(${exe} mbedcrypto)
|
target_link_libraries(${exe} ${mbedcrypto_target})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
install(TARGETS ${executables}
|
install(TARGETS ${executables}
|
||||||
|
@ -2,7 +2,7 @@ set(THREADS_USE_PTHREADS_WIN32 true)
|
|||||||
find_package(Threads)
|
find_package(Threads)
|
||||||
|
|
||||||
set(libs
|
set(libs
|
||||||
mbedtls
|
${mbedtls_target}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(USE_PKCS11_HELPER_LIBRARY)
|
if(USE_PKCS11_HELPER_LIBRARY)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
set(libs
|
set(libs
|
||||||
mbedtls
|
${mbedtls_target}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(USE_PKCS11_HELPER_LIBRARY)
|
if(USE_PKCS11_HELPER_LIBRARY)
|
||||||
@ -33,7 +33,7 @@ foreach(exe IN LISTS executables_libs executables_mbedcrypto)
|
|||||||
if (${exe_index} GREATER -1)
|
if (${exe_index} GREATER -1)
|
||||||
target_link_libraries(${exe} ${libs})
|
target_link_libraries(${exe} ${libs})
|
||||||
else()
|
else()
|
||||||
target_link_libraries(${exe} mbedcrypto)
|
target_link_libraries(${exe} ${mbedcrypto_target})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
|
|
||||||
|
# Test the target renaming support by adding a prefix to the targets built
|
||||||
|
set(MBEDTLS_TARGET_PREFIX subproject_test_)
|
||||||
|
|
||||||
# We use the parent Mbed TLS directory as the MBEDTLS_DIR for this test. Other
|
# We use the parent Mbed TLS directory as the MBEDTLS_DIR for this test. Other
|
||||||
# projects that use Mbed TLS as a subproject are likely to add by their own
|
# projects that use Mbed TLS as a subproject are likely to add by their own
|
||||||
# relative paths.
|
# relative paths.
|
||||||
@ -8,11 +11,12 @@ set(MBEDTLS_DIR ../../../)
|
|||||||
# Add Mbed TLS as a subdirectory.
|
# Add Mbed TLS as a subdirectory.
|
||||||
add_subdirectory(${MBEDTLS_DIR} build)
|
add_subdirectory(${MBEDTLS_DIR} build)
|
||||||
|
|
||||||
# Link against all the Mbed TLS libraries.
|
# Link against all the Mbed TLS libraries. Verifies that the targets have been
|
||||||
|
# created using the specified prefix
|
||||||
set(libs
|
set(libs
|
||||||
mbedcrypto
|
subproject_test_mbedcrypto
|
||||||
mbedx509
|
subproject_test_mbedx509
|
||||||
mbedtls
|
subproject_test_mbedtls
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(cmake_subproject cmake_subproject.c)
|
add_executable(cmake_subproject cmake_subproject.c)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
set(libs
|
set(libs
|
||||||
mbedcrypto
|
${mbedcrypto_target}
|
||||||
)
|
)
|
||||||
|
|
||||||
set(executables
|
set(executables
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
set(libs
|
set(libs
|
||||||
mbedx509
|
${mbedx509_target}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(USE_PKCS11_HELPER_LIBRARY)
|
if(USE_PKCS11_HELPER_LIBRARY)
|
||||||
@ -23,7 +23,7 @@ foreach(exe IN LISTS executables)
|
|||||||
target_link_libraries(${exe} ${libs})
|
target_link_libraries(${exe} ${libs})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
target_link_libraries(cert_app mbedtls)
|
target_link_libraries(cert_app ${mbedtls_target})
|
||||||
|
|
||||||
install(TARGETS ${executables}
|
install(TARGETS ${executables}
|
||||||
DESTINATION "bin"
|
DESTINATION "bin"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
set(libs
|
set(libs
|
||||||
mbedtls
|
${mbedtls_target}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Set the project root directory if it's not already defined, as may happen if
|
# Set the project root directory if it's not already defined, as may happen if
|
||||||
@ -43,7 +43,7 @@ function(add_test_suite suite_name)
|
|||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT test_suite_${data_name}.c
|
OUTPUT test_suite_${data_name}.c
|
||||||
COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_test_code.py -f ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function -d ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${data_name}.data -t ${CMAKE_CURRENT_SOURCE_DIR}/suites/main_test.function -p ${CMAKE_CURRENT_SOURCE_DIR}/suites/host_test.function -s ${CMAKE_CURRENT_SOURCE_DIR}/suites --helpers-file ${CMAKE_CURRENT_SOURCE_DIR}/suites/helpers.function -o .
|
COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_test_code.py -f ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function -d ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${data_name}.data -t ${CMAKE_CURRENT_SOURCE_DIR}/suites/main_test.function -p ${CMAKE_CURRENT_SOURCE_DIR}/suites/host_test.function -s ${CMAKE_CURRENT_SOURCE_DIR}/suites --helpers-file ${CMAKE_CURRENT_SOURCE_DIR}/suites/helpers.function -o .
|
||||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_test_code.py mbedtls ${CMAKE_CURRENT_SOURCE_DIR}/suites/helpers.function ${CMAKE_CURRENT_SOURCE_DIR}/suites/main_test.function ${CMAKE_CURRENT_SOURCE_DIR}/suites/host_test.function ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${data_name}.data
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_test_code.py ${mbedtls_target} ${CMAKE_CURRENT_SOURCE_DIR}/suites/helpers.function ${CMAKE_CURRENT_SOURCE_DIR}/suites/main_test.function ${CMAKE_CURRENT_SOURCE_DIR}/suites/host_test.function ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${data_name}.data
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(test_suite_${data_name} test_suite_${data_name}.c $<TARGET_OBJECTS:mbedtls_test>)
|
add_executable(test_suite_${data_name} test_suite_${data_name}.c $<TARGET_OBJECTS:mbedtls_test>)
|
||||||
|
Loading…
Reference in New Issue
Block a user