Skip to content

Commit 73f1777

Browse files
authored
Merge pull request #664 from sanpeqf/build-submodule
Build submodule
2 parents fe1644e + 94a367f commit 73f1777

4 files changed

Lines changed: 42 additions & 14 deletions

File tree

CMakeLists.txt

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ set(BFDEV_HEADER_PATH ${PROJECT_SOURCE_DIR}/include)
2525
set(BFDEV_SOURCE_PATH ${PROJECT_SOURCE_DIR}/src)
2626
set(BFDEV_DOCUMENT_PATH ${PROJECT_SOURCE_DIR}/docs)
2727
set(BFDEV_GENERATED_PATH ${PROJECT_BINARY_DIR}/generated)
28+
set(BFDEV_EXPORT_PATH ${PROJECT_BINARY_DIR}/export)
2829

2930
set(BFDEV_ARCH_PATH ${PROJECT_SOURCE_DIR}/arch/${BFDEV_ARCH})
3031
set(BFDEV_ARCH_HEADER_PATH ${BFDEV_ARCH_PATH}/include)
@@ -86,9 +87,30 @@ packed_header(
8687
${BFDEV_HEADER_PATH}/bfdev
8788
)
8889

90+
add_custom_target(
91+
bfdev_export
92+
COMMAND ${CMAKE_COMMAND} -E make_directory
93+
${BFDEV_EXPORT_PATH}
94+
${BFDEV_EXPORT_PATH}/bfdev
95+
COMMAND ${CMAKE_COMMAND} -E copy
96+
${BFDEV_GENERATED_PATH}/bfdev.h
97+
${BFDEV_EXPORT_PATH}
98+
COMMAND ${CMAKE_COMMAND} -E copy_directory
99+
${BFDEV_HEADER_PATH}/bfdev
100+
${BFDEV_ARCH_HEADER_PATH}/bfdev
101+
${BFDEV_GENERATED_PATH}/bfdev
102+
${BFDEV_EXPORT_PATH}/bfdev
103+
)
104+
105+
set_property(
106+
GLOBAL PROPERTY
107+
"BFDEV_INCLUDE_DIRS"
108+
${BFDEV_EXPORT_PATH}
109+
)
110+
89111
macro(bfdev_dependencies target)
90112
add_dependencies(
91-
${target}
113+
bfdev_export
92114
gen-crc8
93115
gen-crc16
94116
gen-crc16be
@@ -97,6 +119,11 @@ macro(bfdev_dependencies target)
97119
gen-crc64
98120
gen-crc64be
99121
)
122+
123+
add_dependencies(
124+
${target}
125+
bfdev_export
126+
)
100127
endmacro()
101128

102129
add_library(bfdev_object OBJECT ${BFDEV_LIBRARY})
@@ -141,14 +168,12 @@ if(${CMAKE_PROJECT_NAME} STREQUAL "bfdev")
141168
)
142169

143170
install(FILES
144-
${BFDEV_GENERATED_PATH}/bfdev.h
171+
${BFDEV_EXPORT_PATH}/bfdev.h
145172
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
146173
)
147174

148175
install(DIRECTORY
149-
${BFDEV_HEADER_PATH}/bfdev
150-
${BFDEV_GENERATED_PATH}/bfdev
151-
${BFDEV_ARCH_HEADER_PATH}/bfdev
176+
${BFDEV_EXPORT_PATH}/bfdev
152177
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
153178
)
154179

bfdev.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# SPDX-License-Identifier: GPL-2.0-or-later
2+
#
3+
# Copyright(c) 2025 John Sanpe <sanpeqf@gmail.com>
4+
#
5+
6+
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
7+
add_subdirectory(${CMAKE_CURRENT_LIST_DIR})
8+
9+
get_property(BFDEV_INCLUDE_DIRS GLOBAL PROPERTY "BFDEV_INCLUDE_DIRS")
10+
include_directories(${BFDEV_INCLUDE_DIRS})

build.cmake

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,6 @@ set(BFDEV_INCLUDE_DIRS
6262
${BFDEV_ARCH_HEADER_PATH}
6363
)
6464

65-
set_property(
66-
GLOBAL PROPERTY
67-
"BFDEV_INCLUDE_DIRS"
68-
${BFDEV_INCLUDE_DIRS}
69-
)
70-
7165
include_directories(${BFDEV_INCLUDE_DIRS})
7266
include(${BFDEV_ARCH_PATH}/build.cmake)
7367
include(${BFDEV_SOURCE_PATH}/build.cmake)

scripts/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@ host_target(gen-crc64be gen-crc64be.c)
2121

2222
macro(generate_crctbl proc path name table rows poly trans)
2323
add_custom_command(
24-
TARGET ${proc}
25-
POST_BUILD COMMAND
26-
bash -c \"
24+
TARGET ${proc} POST_BUILD
25+
COMMAND bash -c \"
2726
mkdir -p ${BFDEV_GENERATED_PATH}/bfdev/crypto &&
2827
${PROJECT_BINARY_DIR}/scripts/${proc}
2928
${name} ${table} ${rows} ${poly} ${trans} >

0 commit comments

Comments
 (0)