Skip to content

Commit 7c5b658

Browse files
committed
add source groups, include HLSL files in solution
1 parent 83da9c5 commit 7c5b658

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

src/nbl/CMakeLists.txt

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ if (NBL_COMPILE_WITH_CUDA)
103103
endif()
104104
endif()
105105

106-
# => TODO: clean
106+
# => TODO: clean!
107107
# a little bit of globbing for headers never hurt anyone
108108
file(GLOB_RECURSE TEMP_GLOB_RES "${NBL_ROOT_PATH}/include/*.h")
109109
set(NABLA_HEADERS_PUBLIC ${NABLA_HEADERS_PUBLIC} ${TEMP_GLOB_RES})
@@ -112,6 +112,9 @@ set(NABLA_HEADERS_PUBLIC ${NABLA_HEADERS_PUBLIC} ${TEMP_GLOB_RES})
112112
file(GLOB_RECURSE TEMP_GLOB_RES "${NBL_ROOT_PATH}/src/*.h")
113113
set(NABLA_HEADERS_PUBLIC2 ${NABLA_HEADERS_PUBLIC2} ${TEMP_GLOB_RES}) # TODO: we should have moved all headers from src directory to /include, but we need it for install target
114114

115+
file(GLOB_RECURSE NABLA_HLSL_PUBLIC "${NBL_ROOT_PATH}/include/*.hlsl")
116+
list(APPEND NABLA_HEADERS_PUBLIC ${NABLA_HLSL_PUBLIC})
117+
115118
foreach(NBL_CURRENT_HEADER IN LISTS NABLA_HEADERS_PUBLIC2)
116119
cmake_path(GET NBL_CURRENT_HEADER PARENT_PATH NBL_CURRENT_HEADER_DIR)
117120
file(RELATIVE_PATH NBL_TMP_REL_DESTINATION "${NBL_ROOT_PATH}/src" ${NBL_CURRENT_HEADER_DIR})
@@ -355,6 +358,7 @@ else()
355358
)
356359
endif()
357360
add_library(Nabla::Nabla ALIAS Nabla)
361+
set_source_files_properties(${NABLA_HLSL_PUBLIC} PROPERTIES HEADER_FILE_ONLY ON)
358362

359363
# from old build config template:
360364
#
@@ -851,4 +855,29 @@ target_compile_definitions(Nabla
851855
INTERFACE NBL_CPACK_PACKAGE_DXC_DLL_DIR_ABS_KEY="${_NBL_DXC_PACKAGE_RUNTIME_DLL_DIR_PATH_}"
852856
)
853857

854-
NBL_ADJUST_FOLDERS(src)
858+
NBL_ADJUST_FOLDERS(src)
859+
function(EXTRACT_BY_REGEX OUT REGEX)
860+
set(tmp "${ARGN}")
861+
list(FILTER tmp INCLUDE REGEX "${REGEX}")
862+
set(${OUT} "${tmp}" PARENT_SCOPE)
863+
endfunction()
864+
865+
get_target_property(SRC Nabla SOURCES)
866+
EXTRACT_BY_REGEX(NABLA_HLSL_FILES ".*\\.hlsl$" ${SRC})
867+
EXTRACT_BY_REGEX(NABLA_HEADER_FILES ".*\\.(h|hpp|tcc)$" ${SRC})
868+
EXTRACT_BY_REGEX(NABLA_SOURCE_FILES ".*\\.(c|cpp)$" ${SRC})
869+
870+
source_group(TREE "${NBL_ROOT_PATH}"
871+
PREFIX "HLSL Files"
872+
FILES ${NABLA_HLSL_FILES}
873+
)
874+
875+
source_group(TREE "${NBL_ROOT_PATH}"
876+
PREFIX "Header Files"
877+
FILES ${NABLA_HEADER_FILES}
878+
)
879+
880+
source_group(TREE "${NBL_ROOT_PATH}"
881+
PREFIX "Source Files"
882+
FILES ${NABLA_SOURCE_FILES}
883+
)

0 commit comments

Comments
 (0)