Skip to content

Commit

Permalink
Misc CMake improvements
Browse files Browse the repository at this point in the history
* Use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR when updating
  CMAKE_MODULE_PATH. This allows this project to be added as a
  subdirectory to other CMake projects.
* Use PRIVATE linking wherever possible
* Use a single install() command for all targets
* Whitespace and comments
  • Loading branch information
leonlynch committed Mar 19, 2022
1 parent 0f4226e commit 6b753d1
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 16 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb")
endif()

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/")

include(CTest)

Expand Down Expand Up @@ -102,8 +102,8 @@ if(BASH_COMPLETION_FOUND)
endif()

# generate and install doxygen documentation
find_package(Doxygen) # optional for generating doxygen files
option(BUILD_DOCS "Build documentation")
find_package(Doxygen) # optional for generating doxygen files
if(Doxygen_FOUND)
# use doxygen to generate HTML
set(DOXYGEN_GENERATE_HTML YES)
Expand Down
28 changes: 15 additions & 13 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ configure_file(
tr31_config.h
)

# TR-31 library
add_library(tr31 tr31.c tr31_crypto.c)
set_target_properties(tr31
PROPERTIES
Expand All @@ -70,11 +71,22 @@ target_include_directories(tr31 INTERFACE
$<INSTALL_INTERFACE:include/${PROJECT_NAME}>
)
if(MbedTLS_FOUND)
target_link_libraries(tr31 MbedTLS::mbedcrypto)
target_link_libraries(tr31 PRIVATE MbedTLS::mbedcrypto)
elseif(OpenSSL_FOUND)
target_link_libraries(tr31 OpenSSL::Crypto)
target_link_libraries(tr31 PRIVATE OpenSSL::Crypto)
endif()
install(TARGETS tr31

# TR-31 command line tool
add_executable(tr31-tool tr31-tool.c)
target_link_libraries(tr31-tool PRIVATE tr31)
if(TARGET argp::argp)
target_link_libraries(tr31-tool PRIVATE argp::argp)
endif()

install(
TARGETS
tr31
tr31-tool
EXPORT tr31Targets # for use by install(EXPORT) command
PUBLIC_HEADER
DESTINATION "include/${PROJECT_NAME}"
Expand All @@ -88,16 +100,6 @@ install(TARGETS tr31
COMPONENT tr31_development
)

add_executable(tr31-tool tr31-tool.c)
target_link_libraries(tr31-tool tr31)
if(TARGET argp::argp)
target_link_libraries(tr31-tool argp::argp)
endif()
install(TARGETS tr31-tool
RUNTIME
COMPONENT tr31_runtime
)

if(BUILD_TESTING)
add_test(NAME tr31_tool_test1
COMMAND tr31-tool --import B0128B1TX00N0300KS18FFFF00A0200001E00000KC0C000169E3KP0C00ECAD626F9F1A826814AA066D86C8C18BD0E14033E1EBEC75BEDF586E6E325F3AA8C0E5 --kbpk AB2E09DB3EF0BA71E0CE6CD755C23A3B
Expand Down
2 changes: 1 addition & 1 deletion test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

cmake_minimum_required(VERSION 3.16)

if (BUILD_TESTING)
if(BUILD_TESTING)
add_executable(tr31_decode_test tr31_decode_test.c)
target_link_libraries(tr31_decode_test tr31)
add_test(tr31_decode_test tr31_decode_test)
Expand Down

0 comments on commit 6b753d1

Please sign in to comment.