@@ -55,7 +55,11 @@ option(BFDEV_DEVEL "Enable development mode" OFF)
5555option (BFDEV_STRICT "Enable strict compilation" OFF )
5656option (BFDEV_EXAMPLES "Build examples" OFF )
5757option (BFDEV_TESTSUITE "Build testsuite" OFF )
58- option (BFDEV_DOCS "Install Documentation" OFF )
58+
59+ option (BFDEV_BUILD_STATIC "Build Static Library" ON )
60+ option (BFDEV_BUILD_SHARED "Build Shared Library" ON )
61+ option (BFDEV_INSTALL_HEADERS "Install Headers" ON )
62+ option (BFDEV_INSTALL_DOCS "Install Documentation" OFF )
5963
6064option (BFDEV_ASAN "Enable Address Sanitizer" OFF )
6165option (BFDEV_UBSAN "Enable Undefined Behaviour Sanitizer" OFF )
@@ -75,7 +79,7 @@ if(BFDEV_DEVEL)
7579 set (BFDEV_STRICT ON )
7680 set (BFDEV_EXAMPLES ON )
7781 set (BFDEV_TESTSUITE ON )
78- set (BFDEV_DOCS ON )
82+ set (BFDEV_INSTALL_DOCS ON )
7983 set (BFDEV_ASAN ON )
8084 set (BFDEV_UBSAN ON )
8185 set (BFDEV_GCOV ON )
@@ -158,43 +162,59 @@ if(BFDEV_TESTSUITE)
158162endif ()
159163
160164if (${CMAKE_PROJECT_NAME} STREQUAL "bfdev" )
161- add_library (bfdev_static STATIC ${BFDEV_LIBRARY} )
162- add_library (bfdev_shared SHARED ${BFDEV_LIBRARY} )
165+ if (BFDEV_BUILD_STATIC)
166+ add_library (bfdev_static STATIC ${BFDEV_LIBRARY} )
167+ bfdev_dependencies (bfdev_static )
168+
169+ set_target_properties (bfdev_static
170+ PROPERTIES
171+ OUTPUT_NAME ${PROJECT_NAME}
172+ LINKER_LANGUAGE C
173+ )
163174
164- bfdev_dependencies (bfdev_static )
165- bfdev_dependencies (bfdev_shared )
175+ install (TARGETS
176+ bfdev_static
177+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
178+ )
179+ endif ()
166180
167- set_target_properties (bfdev_static
168- PROPERTIES
169- OUTPUT_NAME ${PROJECT_NAME}
170- LINKER_LANGUAGE C
171- )
181+ if (BFDEV_BUILD_SHARED)
182+ add_library (bfdev_shared SHARED ${BFDEV_LIBRARY} )
183+ bfdev_dependencies (bfdev_shared )
184+
185+ set_target_properties (bfdev_shared
186+ PROPERTIES
187+ OUTPUT_NAME ${PROJECT_NAME}
188+ VERSION ${PROJECT_VERSION}
189+ SOVERSION ${PROJECT_VERSION_MAJOR}
190+ LINKER_LANGUAGE C
191+ MACOSX_RPATH ON
192+ )
172193
173- set_target_properties (bfdev_shared
174- PROPERTIES
175- OUTPUT_NAME ${PROJECT_NAME}
176- VERSION ${PROJECT_VERSION}
177- SOVERSION ${PROJECT_VERSION_MAJOR}
178- LINKER_LANGUAGE C
179- MACOSX_RPATH ON
180- )
194+ install (TARGETS
195+ bfdev_shared
196+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
197+ )
198+ endif ()
181199
182- install (FILES
183- ${BFDEV_CONFIGURE}
184- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/bfdev
185- )
200+ if (BFDEV_INSTALL_HEADERS)
201+ install (FILES
202+ ${BFDEV_CONFIGURE}
203+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/bfdev
204+ )
186205
187- install (FILES
188- ${BFDEV_EXPORT_PATH} /bfdev.h
189- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
190- )
206+ install (FILES
207+ ${BFDEV_EXPORT_PATH} /bfdev.h
208+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
209+ )
191210
192- install (DIRECTORY
193- ${BFDEV_EXPORT_PATH} /bfdev
194- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
195- )
211+ install (DIRECTORY
212+ ${BFDEV_EXPORT_PATH} /bfdev
213+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
214+ )
215+ endif ()
196216
197- if (BFDEV_DOCS )
217+ if (BFDEV_INSTALL_DOCS )
198218 install (FILES
199219 ${PROJECT_SOURCE_DIR} /README.md
200220 ${PROJECT_SOURCE_DIR} /AUTHORS
@@ -208,10 +228,4 @@ if(${CMAKE_PROJECT_NAME} STREQUAL "bfdev")
208228 DESTINATION ${CMAKE_INSTALL_DOCDIR}
209229 )
210230 endif ()
211-
212- install (TARGETS
213- bfdev_static bfdev_shared
214- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
215- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
216- )
217231endif ()
0 commit comments