@@ -23,6 +23,7 @@ set(BFDEV_ARCH generic)
2323set (BFDEV_MODULE_PATH ${PROJECT_SOURCE_DIR} /cmake)
2424set (BFDEV_HEADER_PATH ${PROJECT_SOURCE_DIR} /include )
2525set (BFDEV_SOURCE_PATH ${PROJECT_SOURCE_DIR} /src)
26+ set (BFDEV_UTILS_PATH ${PROJECT_SOURCE_DIR} /utils)
2627set (BFDEV_DOCUMENT_PATH ${PROJECT_SOURCE_DIR} /docs)
2728set (BFDEV_GENERATED_PATH ${PROJECT_BINARY_DIR} /generated )
2829
@@ -48,8 +49,11 @@ string(APPEND BFDEV_RELEASE
4849
4950option (BFDEV_DEVEL "Enable development mode" OFF )
5051option (BFDEV_STRICT "Enable strict compilation" OFF )
51- option (BFDEV_EXAMPLES "Build examples" OFF )
52- option (BFDEV_TESTSUITE "Build testsuite" OFF )
52+
53+ option (BFDEV_BFX "Build Extension Layer" ON )
54+ option (BFDEV_EXAMPLES "Build Examples" OFF )
55+ option (BFDEV_TESTSUITE "Build Testsuite" OFF )
56+ option (BFDEV_DOCS "Install Documentation" OFF )
5357
5458option (BFDEV_ASAN "Enable Address Sanitizer" OFF )
5559option (BFDEV_UBSAN "Enable Undefined Behaviour Sanitizer" OFF )
@@ -67,23 +71,38 @@ option(BFDEV_CRC_EXTEND "CRC loop unfolding optimize" ON)
6771
6872if (BFDEV_DEVEL)
6973 set (BFDEV_STRICT ON )
74+ set (BFDEV_BFX ON )
7075 set (BFDEV_EXAMPLES ON )
7176 set (BFDEV_TESTSUITE ON )
77+ set (BFDEV_DOCS ON )
7278 set (BFDEV_ASAN ON )
7379 set (BFDEV_UBSAN ON )
7480 set (BFDEV_GCOV ON )
7581endif ()
7682
83+ if (BFDEV_EXAMPLES OR BFDEV_TESTSUITE)
84+ set (BFDEV_BFX ON )
85+ endif ()
86+
7787include (${PROJECT_SOURCE_DIR} /build .cmake)
7888add_subdirectory (${PROJECT_SOURCE_DIR} /scripts)
7989
8090packed_header(
8191 bfdev/
82- _BFDEV_H_
92+ _BFDEV_H_ ""
8393 ${BFDEV_GENERATED_PATH} /bfdev.h
8494 ${BFDEV_HEADER_PATH} /bfdev
8595)
8696
97+ if (BFDEV_BFX)
98+ packed_header(
99+ bfx/
100+ _BFX_H_ "#include <bfdev.h>"
101+ ${BFDEV_GENERATED_PATH} /bfx.h
102+ ${BFDEV_HEADER_PATH} /bfx
103+ )
104+ endif ()
105+
87106macro (bfdev_dependencies target )
88107 add_dependencies (
89108 ${target}
@@ -134,21 +153,13 @@ if(${CMAKE_PROJECT_NAME} STREQUAL "bfdev")
134153 )
135154
136155 install (FILES
137- ${BFDEV_GENERATED_PATH} /bfdev.h
138- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
139- )
140-
141- install (FILES
142- ${PROJECT_SOURCE_DIR} /README.md
143- ${PROJECT_SOURCE_DIR} /AUTHORS
144- ${PROJECT_SOURCE_DIR} /COPYING
145- ${PROJECT_SOURCE_DIR} /COPYING.LIB
146- DESTINATION ${CMAKE_INSTALL_DOCDIR}
156+ ${BFDEV_CONFIGURE}
157+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/bfdev
147158 )
148159
149160 install (FILES
150- ${BFDEV_CONFIGURE}
151- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/bfdev
161+ ${BFDEV_GENERATED_PATH} /bfdev.h
162+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
152163 )
153164
154165 install (DIRECTORY
@@ -158,10 +169,32 @@ if(${CMAKE_PROJECT_NAME} STREQUAL "bfdev")
158169 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
159170 )
160171
161- install (DIRECTORY
162- ${BFDEV_DOCUMENT_PATH}
163- DESTINATION ${CMAKE_INSTALL_DOCDIR}
164- )
172+ if (BFDEV_BFX)
173+ install (FILES
174+ ${BFDEV_GENERATED_PATH} /bfx.h
175+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
176+ )
177+
178+ install (DIRECTORY
179+ ${BFDEV_HEADER_PATH} /bfx
180+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
181+ )
182+ endif ()
183+
184+ if (BFDEV_DOCS)
185+ install (FILES
186+ ${PROJECT_SOURCE_DIR} /README.md
187+ ${PROJECT_SOURCE_DIR} /AUTHORS
188+ ${PROJECT_SOURCE_DIR} /COPYING
189+ ${PROJECT_SOURCE_DIR} /COPYING.LIB
190+ DESTINATION ${CMAKE_INSTALL_DOCDIR}
191+ )
192+
193+ install (DIRECTORY
194+ ${BFDEV_DOCUMENT_PATH}
195+ DESTINATION ${CMAKE_INSTALL_DOCDIR}
196+ )
197+ endif ()
165198
166199 install (TARGETS
167200 bfdev_static bfdev_shared
0 commit comments