Skip to content

Commit 503becd

Browse files
cmake: write xtensor.hpp to local dir to keep global build dir clean
Generate xtensor.hpp into ${CMAKE_CURRENT_BINARY_DIR} instead of top- level ${CMAKE_BINARY_DIR}. Expose ${CMAKE_CURRENT_BINARY_DIR} via BUILD_INTERFACE so consumers can find the generated header at build time while keeping install paths unchanged.
1 parent 2be98b4 commit 503becd

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ add_library(xtensor INTERFACE)
192192

193193
target_include_directories(xtensor INTERFACE
194194
$<BUILD_INTERFACE:${XTENSOR_INCLUDE_DIR}>
195+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
195196
$<INSTALL_INTERFACE:include>)
196197

197198
target_compile_features(xtensor INTERFACE cxx_std_20)
@@ -321,7 +322,7 @@ POSTFIX(XTENSOR_SINGLE_INCLUDE ">" ${XTENSOR_SINGLE_INCLUDE})
321322
string(REPLACE ";" "\n" XTENSOR_SINGLE_INCLUDE "${XTENSOR_SINGLE_INCLUDE}")
322323
string(CONCAT XTENSOR_SINGLE_INCLUDE "#ifndef XTENSOR\n" "#define XTENSOR\n\n" "${XTENSOR_SINGLE_INCLUDE}" "\n\n#endif\n")
323324

324-
file(WRITE "${CMAKE_BINARY_DIR}/xtensor.hpp" "${XTENSOR_SINGLE_INCLUDE}")
325+
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/xtensor.hpp" "${XTENSOR_SINGLE_INCLUDE}")
325326

326-
install(FILES "${CMAKE_BINARY_DIR}/xtensor.hpp"
327+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/xtensor.hpp"
327328
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})

0 commit comments

Comments
 (0)