-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
46 lines (39 loc) · 1.65 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
cmake_minimum_required(VERSION 3.5)
project(FloatFormat VERSION 1.0)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# using GCC
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
message(FATAL_ERROR "Compiler not supported")
endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19) # 2017
message(FATAL_ERROR "Compiler not supported")
endif()
elseif (NOT CMAKE_CXX_COMPILER_ID STREQUAL Clang AND
NOT CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
message(FATAL_ERROR "Unknown Compiler")
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}")
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}")
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}")
endif()
add_library(FloatFormat SHARED FF.cpp)
set_target_properties(FloatFormat PROPERTIES VERSION 1.0 SOVERSION 1)
target_compile_options(FloatFormat PUBLIC
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:-Werror -Wall -Wextra>)
# $<$<CXX_COMPILER_ID:MSVC>:/Wall /WX>)
add_executable(ff driver.cpp)
target_link_libraries(ff FloatFormat)
add_subdirectory(test)
install(TARGETS ff RUNTIME DESTINATION bin)
install(TARGETS FloatFormat
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
install(FILES FF.h DESTINATION include)