Packages

Signal Protocol cryptographic primitives NIF implementation

Current section

Files

Jump to
libsignal_protocol_nif c_src protocol CMakeLists.txt
Raw

c_src/protocol/CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(protocol)
# Set C standard
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
# Find OpenSSL package
find_package(OpenSSL REQUIRED)
# Add protocol library
add_library(protocol STATIC
protocol.c
)
# Include directories
target_include_directories(protocol PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../crypto
${OPENSSL_INCLUDE_DIR}
${ERLANG_INCLUDE_DIRS}
)
# Link libraries
target_link_libraries(protocol
crypto
${OPENSSL_LIBRARIES}
${ERLANG_LIBRARIES}
)
# Set compiler flags
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(protocol PRIVATE
-Wall
-Wextra
-Werror
-Wno-unused-parameter
-fPIC
)
elseif(MSVC)
target_compile_options(protocol PRIVATE
/W4
/WX
/wd4100 # Unused parameter
)
endif()
# Install rules
install(TARGETS protocol
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)
install(FILES protocol.h
DESTINATION include/protocol
)