forked from DOI-USGS/usgscsm
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
66 lines (53 loc) · 1.78 KB
/
CMakeLists.txt
File metadata and controls
66 lines (53 loc) · 1.78 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
cmake_minimum_required(VERSION 3.10)
project(usgscsm VERSION 0.0.1 DESCRIPTION "usgscsm library")
include(cmake/gtest.cmake)
include(GNUInstallDirs)
include(GoogleTest)
set(CMAKE_CXX_STANDARD 11)
# Optional build or link against CSM
option (BUILD_CSM "Build the CSM library" ON)
if(BUILD_CSM)
add_subdirectory(csm)
set(CSM_INCLUDE_DIR /csm)
set(CSM_LIBRARY csmapi)
else()
find_path(CSM_INCLUDE_DIR NAMES "csm.h"
PATH_SUFFIXES "csm"
PATHS $ENV{CONDA_PREFIX}/include/)
find_library(CSM_LIBRARY csmapi PATHS $ENV{CONDA_PREFIX}/lib)
message("--Found CSM Library: ${CSM_LIBRARY}")
message("--Found CSM Include Directory: ${CSM_INCLUDE_DIR}")
endif(BUILD_CSM)
add_library(usgscsm SHARED
src/UsgsAstroPlugin.cpp
src/UsgsAstroFrameSensorModel.cpp
src/UsgsAstroLsSensorModel.cpp)
set_target_properties(usgscsm PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 1
)
set(USGSCSM_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include/usgscsm"
"${CMAKE_CURRENT_SOURCE_DIR}/include/json")
target_include_directories(usgscsm
PUBLIC
${USGSCSM_INCLUDE_DIRS}
${CSM_INCLUDE_DIR}
)
# Setup for GoogleTest
find_package (Threads)
target_link_libraries(usgscsm
${CSM_LIBRARY}
gtest ${CMAKE_THREAD_LIBS_INIT})
if(WIN32)
install(TARGETS usgscsm RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR})
else()
install(TARGETS usgscsm LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
install(DIRECTORY ${USGSCSM_INCLUDE_DIRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
# Optional build or link against CSM
option (BUILD_TESTS "Build tests" ON)
if(BUILD_TESTS)
include(CTest)
enable_testing()
add_subdirectory(tests)
endif()