70 lines
1.9 KiB
CMake
70 lines
1.9 KiB
CMake
|
# Copyright (c) 2018 Yubico AB. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style
|
||
|
# license that can be found in the LICENSE file.
|
||
|
|
||
|
list(APPEND COMPAT_SOURCES
|
||
|
../openbsd-compat/clock_gettime.c
|
||
|
../openbsd-compat/getopt_long.c
|
||
|
../openbsd-compat/strlcat.c
|
||
|
../openbsd-compat/strlcpy.c
|
||
|
)
|
||
|
|
||
|
if(WIN32 AND BUILD_SHARED_LIBS AND NOT CYGWIN AND NOT MSYS)
|
||
|
list(APPEND COMPAT_SOURCES ../openbsd-compat/posix_win.c)
|
||
|
endif()
|
||
|
|
||
|
# set the library to link against
|
||
|
if(BUILD_STATIC_LIBS)
|
||
|
# drop -rdynamic
|
||
|
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
|
||
|
set(_FIDO2_LIBRARY fido2)
|
||
|
elseif(BUILD_SHARED_LIBS)
|
||
|
set(_FIDO2_LIBRARY fido2_shared)
|
||
|
else()
|
||
|
set(_FIDO2_LIBRARY ${CRYPTO_LIBRARIES} fido2)
|
||
|
endif()
|
||
|
|
||
|
# enable -Wconversion -Wsign-conversion
|
||
|
if(NOT MSVC)
|
||
|
set_source_files_properties(assert.c cred.c info.c manifest.c reset.c
|
||
|
retries.c setpin.c util.c PROPERTIES COMPILE_FLAGS
|
||
|
"-Wconversion -Wsign-conversion")
|
||
|
endif()
|
||
|
|
||
|
# manifest
|
||
|
add_executable(manifest manifest.c ${COMPAT_SOURCES})
|
||
|
target_link_libraries(manifest ${_FIDO2_LIBRARY})
|
||
|
|
||
|
# info
|
||
|
add_executable(info info.c ${COMPAT_SOURCES})
|
||
|
target_link_libraries(info ${_FIDO2_LIBRARY})
|
||
|
|
||
|
# reset
|
||
|
add_executable(reset reset.c util.c ${COMPAT_SOURCES})
|
||
|
target_link_libraries(reset ${_FIDO2_LIBRARY})
|
||
|
|
||
|
# cred
|
||
|
add_executable(cred cred.c util.c ${COMPAT_SOURCES})
|
||
|
target_link_libraries(cred ${_FIDO2_LIBRARY})
|
||
|
|
||
|
# assert
|
||
|
add_executable(assert assert.c util.c ${COMPAT_SOURCES})
|
||
|
target_link_libraries(assert ${_FIDO2_LIBRARY})
|
||
|
|
||
|
# setpin
|
||
|
add_executable(setpin setpin.c ${COMPAT_SOURCES})
|
||
|
target_link_libraries(setpin ${_FIDO2_LIBRARY})
|
||
|
|
||
|
# retries
|
||
|
add_executable(retries retries.c ${COMPAT_SOURCES})
|
||
|
target_link_libraries(retries ${_FIDO2_LIBRARY})
|
||
|
|
||
|
# select
|
||
|
add_executable(select select.c ${COMPAT_SOURCES})
|
||
|
target_link_libraries(select ${_FIDO2_LIBRARY})
|
||
|
|
||
|
if(MINGW)
|
||
|
# needed for nanosleep() in mingw
|
||
|
target_link_libraries(select winpthread)
|
||
|
endif()
|