Skip to content

Commit a5ab81d

Browse files
christianrauchmkrogius
authored andcommitted
export project (#20)
1 parent 0269850 commit a5ab81d

File tree

1 file changed

+39
-19
lines changed

1 file changed

+39
-19
lines changed

CMakeLists.txt

Lines changed: 39 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,45 @@ aux_source_directory(common COMMON_SRC)
99
aux_source_directory(. APRILTAG_SRCS)
1010

1111
# Library
12-
add_library(apriltag SHARED ${APRILTAG_SRCS} ${COMMON_SRC})
13-
target_link_libraries(apriltag Threads::Threads m)
12+
add_library(${PROJECT_NAME} SHARED ${APRILTAG_SRCS} ${COMMON_SRC})
13+
target_link_libraries(${PROJECT_NAME} Threads::Threads m)
14+
15+
set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION 3 VERSION 3.0.0)
16+
17+
include(GNUInstallDirs)
18+
target_include_directories(${PROJECT_NAME} PUBLIC
19+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/>"
20+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/common>"
21+
"$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>/apriltag")
22+
23+
set_target_properties(${PROJECT_NAME} PROPERTIES
24+
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR}
25+
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_INSTALL_LIBDIR}
26+
)
27+
28+
# install library
29+
install(TARGETS ${PROJECT_NAME} EXPORT apriltag
30+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
31+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
32+
)
33+
34+
# install header file hierarchy
1435
file(GLOB_RECURSE HEADER_FILES RELATIVE ${CMAKE_SOURCE_DIR} *.h)
15-
set_target_properties(apriltag PROPERTIES SOVERSION 3 VERSION 3.0.0)
36+
foreach(HEADER ${HEADER_FILES})
37+
string(REGEX MATCH "(.*)[/\\]" DIR ${HEADER})
38+
install(FILES ${HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${DIR})
39+
endforeach()
1640

41+
# export library
42+
install(EXPORT apriltag
43+
DESTINATION share/apriltag/cmake
44+
FILE apriltagConfig.cmake
45+
)
46+
47+
FILE(READ apriltag.pc.in PKGC)
48+
STRING(REGEX REPLACE "^prefix=" "prefix=${CMAKE_INSTALL_PREFIX}" PKGC_CONF "${PKGC}" )
49+
FILE(WRITE ${PROJECT_BINARY_DIR}/apriltag.pc ${PKGC_CONF})
50+
install(FILES "${PROJECT_BINARY_DIR}/apriltag.pc" DESTINATION "lib/pkgconfig/")
1751

1852
# Examples
1953
# apriltag_demo
@@ -27,20 +61,6 @@ if(OpenCV_FOUND)
2761
install(TARGETS opencv_demo RUNTIME DESTINATION bin)
2862
endif(OpenCV_FOUND)
2963

30-
# install library and example programs
31-
install(TARGETS apriltag apriltag_demo
32-
ARCHIVE DESTINATION lib
33-
LIBRARY DESTINATION lib
34-
RUNTIME DESTINATION bin
35-
)
36-
37-
# install headers
38-
foreach(HEADER ${HEADER_FILES})
39-
string(REGEX MATCH "(.*)[/\\]" DIR ${HEADER})
40-
install(FILES ${HEADER} DESTINATION include/${PROJECT_NAME}/${DIR})
41-
endforeach()
64+
# install example programs
65+
install(TARGETS apriltag_demo RUNTIME DESTINATION bin)
4266

43-
FILE(READ apriltag.pc.in PKGC)
44-
STRING(REGEX REPLACE "^prefix=" "prefix=${CMAKE_INSTALL_PREFIX}" PKGC_CONF "${PKGC}" )
45-
FILE(WRITE ${PROJECT_BINARY_DIR}/apriltag.pc ${PKGC_CONF})
46-
install(FILES "${PROJECT_BINARY_DIR}/apriltag.pc" DESTINATION "lib/pkgconfig/")

0 commit comments

Comments
 (0)