@@ -9,11 +9,45 @@ aux_source_directory(common COMMON_SRC)
99aux_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
1435file (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)
2862endif (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