Use more CMake functionality
Use CTest and create tests/ subdir Use CMake to optionally build examples Add .gitignore
This commit is contained in:
parent
e47cc1112b
commit
40b57c71fc
|
@ -0,0 +1,12 @@
|
||||||
|
# CMake
|
||||||
|
CMakeLists.txt.user
|
||||||
|
CMakeCache.txt
|
||||||
|
CMakeFiles
|
||||||
|
CMakeScripts
|
||||||
|
Testing
|
||||||
|
Makefile
|
||||||
|
cmake_install.cmake
|
||||||
|
install_manifest.txt
|
||||||
|
compile_commands.json
|
||||||
|
CTestTestfile.cmake
|
||||||
|
_deps
|
|
@ -1,8 +1,36 @@
|
||||||
cmake_minimum_required(VERSION 3.14)
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
project(hmac-sha256)
|
set(CMAKE_C_STANDARD 99)
|
||||||
|
|
||||||
add_library(hmac-sha256 STATIC hmac_sha256.c sha256.c )
|
# For "CMAKE_INSTALL_<dir>" standard installation directories
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
install(TARGETS hmac-sha256 DESTINATION lib)
|
project(hmac_sha256 LANGUAGES C CXX)
|
||||||
install(FILES hmac-sha256.h DESTINATION include)
|
|
||||||
|
option(HMAC_SHA256_TESTS "Build unit tests" FALSE)
|
||||||
|
option(HMAC_SHA256_EXAMPLES "Build the examples" FALSE)
|
||||||
|
|
||||||
|
add_library(hmac_sha256 STATIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/sha256.c
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/hmac_sha256.c
|
||||||
|
)
|
||||||
|
target_include_directories(hmac_sha256 INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
install(TARGETS hmac_sha256
|
||||||
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/hmac_sha256.h
|
||||||
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
|
)
|
||||||
|
|
||||||
|
if (HMAC_SHA256_TESTS)
|
||||||
|
enable_testing()
|
||||||
|
add_subdirectory(tests)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(HMAC_SHA256_EXAMPLES)
|
||||||
|
add_subdirectory(examples)
|
||||||
|
endif()
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
# CMake
|
||||||
|
CMakeLists.txt.user
|
||||||
|
CMakeCache.txt
|
||||||
|
CMakeFiles
|
||||||
|
CMakeScripts
|
||||||
|
Testing
|
||||||
|
Makefile
|
||||||
|
cmake_install.cmake
|
||||||
|
install_manifest.txt
|
||||||
|
compile_commands.json
|
||||||
|
CTestTestfile.cmake
|
||||||
|
_deps
|
|
@ -0,0 +1,13 @@
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
||||||
|
|
||||||
|
add_executable(hmac_cxx_example
|
||||||
|
hmac_cxx_example.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(hmac_c_example
|
||||||
|
hmac_c_example.c
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(hmac_cxx_example hmac_sha256)
|
||||||
|
target_link_libraries(hmac_c_example hmac_sha256)
|
|
@ -0,0 +1,7 @@
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
||||||
|
|
||||||
|
add_executable(tests tests.cpp)
|
||||||
|
target_link_libraries(tests hmac_sha256)
|
||||||
|
|
||||||
|
add_test(hmac_sha256-tests tests)
|
Loading…
Reference in New Issue