Skip to content

Commit 75dc1fd

Browse files
authored
Use PROJECT_*_DIR instead of CMAKE_*_DIR to support subproject builds (#458)
Replace CMAKE_[SOURCE/BINARY]_DIR usage with PROJECT_[SOURCE/BINARY]_DIR to support subproject builds. This helps make the project usable as a subproject (e.g. via add_subdirectory or FetchContent) without polluting the parent build tree. Signed-off-by: Schilling, Matthew <matthew.schilling@intel.com>
1 parent 5d62b2e commit 75dc1fd

3 files changed

Lines changed: 31 additions & 26 deletions

File tree

CMakeLists.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,19 @@ add_definitions(-DLOADER_VERSION_MAJOR=${PROJECT_VERSION_MAJOR})
6363
add_definitions(-DLOADER_VERSION_MINOR=${PROJECT_VERSION_MINOR})
6464
add_definitions(-DLOADER_VERSION_PATCH=${PROJECT_VERSION_PATCH})
6565

66-
file(WRITE "${CMAKE_BINARY_DIR}/VERSION" "${PROJECT_VERSION}")
66+
file(WRITE "${PROJECT_BINARY_DIR}/VERSION" "${PROJECT_VERSION}")
6767

6868
string(TIMESTAMP CURRENT_YEAR "%Y")
6969

70-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
71-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
72-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
73-
70+
if (NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
71+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
72+
endif()
73+
if (NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
74+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
75+
endif()
76+
if (NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
77+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
78+
endif()
7479
#Define a path for custom commands to work around MSVC
7580
set(CUSTOM_COMMAND_BINARY_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
7681

source/drivers/null/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,15 @@ if(BUILD_L0_LOADER_TESTS)
8282
set_target_properties(ze_intel_gpu PROPERTIES
8383
VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
8484
SOVERSION "${PROJECT_VERSION_MAJOR}"
85-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib_fake"
86-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin_fake"
85+
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib_fake"
86+
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin_fake"
8787
)
8888

8989
set_target_properties(ze_intel_npu PROPERTIES
9090
VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
9191
SOVERSION "${PROJECT_VERSION_MAJOR}"
92-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib_fake"
93-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin_fake"
92+
LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib_fake"
93+
RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin_fake"
9494
)
9595
target_include_directories(ze_intel_gpu
9696
PUBLIC

test/CMakeLists.txt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,29 +34,29 @@ endif()
3434
# since they are not built into the library when BUILD_STATIC=1
3535
if(BUILD_STATIC)
3636
target_sources(tests PRIVATE
37-
${CMAKE_SOURCE_DIR}/source/loader/ze_loader.cpp
38-
${CMAKE_SOURCE_DIR}/source/loader/ze_loader_api.cpp
39-
${CMAKE_SOURCE_DIR}/source/loader/ze_ldrddi.cpp
40-
${CMAKE_SOURCE_DIR}/source/loader/ze_ldrddi_driver_ddi.cpp
41-
${CMAKE_SOURCE_DIR}/source/loader/zet_ldrddi.cpp
42-
${CMAKE_SOURCE_DIR}/source/loader/zet_ldrddi_driver_ddi.cpp
43-
${CMAKE_SOURCE_DIR}/source/loader/zes_ldrddi.cpp
44-
${CMAKE_SOURCE_DIR}/source/loader/zes_ldrddi_driver_ddi.cpp
45-
${CMAKE_SOURCE_DIR}/source/loader/zer_ldrddi_driver_ddi.cpp
46-
${CMAKE_SOURCE_DIR}/source/loader/zer_ldrddi.cpp
47-
${CMAKE_SOURCE_DIR}/source/loader/zel_tracing_ldrddi.cpp
37+
${PROJECT_SOURCE_DIR}/source/loader/ze_loader.cpp
38+
${PROJECT_SOURCE_DIR}/source/loader/ze_loader_api.cpp
39+
${PROJECT_SOURCE_DIR}/source/loader/ze_ldrddi.cpp
40+
${PROJECT_SOURCE_DIR}/source/loader/ze_ldrddi_driver_ddi.cpp
41+
${PROJECT_SOURCE_DIR}/source/loader/zet_ldrddi.cpp
42+
${PROJECT_SOURCE_DIR}/source/loader/zet_ldrddi_driver_ddi.cpp
43+
${PROJECT_SOURCE_DIR}/source/loader/zes_ldrddi.cpp
44+
${PROJECT_SOURCE_DIR}/source/loader/zes_ldrddi_driver_ddi.cpp
45+
${PROJECT_SOURCE_DIR}/source/loader/zer_ldrddi_driver_ddi.cpp
46+
${PROJECT_SOURCE_DIR}/source/loader/zer_ldrddi.cpp
47+
${PROJECT_SOURCE_DIR}/source/loader/zel_tracing_ldrddi.cpp
4848
)
4949

5050
# Platform-specific source files
5151
if(WIN32)
5252
target_sources(tests PRIVATE
53-
${CMAKE_SOURCE_DIR}/source/loader/windows/driver_discovery_win.cpp
54-
${CMAKE_SOURCE_DIR}/source/loader/windows/loader_init.cpp
53+
${PROJECT_SOURCE_DIR}/source/loader/windows/driver_discovery_win.cpp
54+
${PROJECT_SOURCE_DIR}/source/loader/windows/loader_init.cpp
5555
)
5656
else()
5757
target_sources(tests PRIVATE
58-
${CMAKE_SOURCE_DIR}/source/loader/linux/driver_discovery_lin.cpp
59-
${CMAKE_SOURCE_DIR}/source/loader/linux/loader_init.cpp
58+
${PROJECT_SOURCE_DIR}/source/loader/linux/driver_discovery_lin.cpp
59+
${PROJECT_SOURCE_DIR}/source/loader/linux/loader_init.cpp
6060
)
6161
endif()
6262

@@ -68,7 +68,7 @@ if(BUILD_STATIC)
6868
)
6969
endif()
7070

71-
target_include_directories(tests PRIVATE ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/source/inc)
71+
target_include_directories(tests PRIVATE ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/source/inc)
7272
target_link_libraries(
7373
tests
7474
PRIVATE
@@ -1158,4 +1158,4 @@ add_test(NAME test_validation_layer_api_tracing_immediate_cmdlist COMMAND tests
11581158
set_property(TEST test_validation_layer_api_tracing_immediate_cmdlist PROPERTY ENVIRONMENT "ZE_ENABLE_VALIDATION_LAYER=1;ZEL_ENABLE_LOADER_LOGGING=1;ZEL_LOADER_LOGGING_LEVEL=trace;ZE_ENABLE_NULL_DRIVER=1")
11591159

11601160
add_test(NAME test_validation_layer_api_tracing_command_queue COMMAND tests --gtest_filter=ValidationLayerApiTracing.GivenValidationLayerEnabledWithTraceLevelLoggingWhenCallingCommandQueueApisThenTracingDoesNotCrash)
1161-
set_property(TEST test_validation_layer_api_tracing_command_queue PROPERTY ENVIRONMENT "ZE_ENABLE_VALIDATION_LAYER=1;ZEL_ENABLE_LOADER_LOGGING=1;ZEL_LOADER_LOGGING_LEVEL=trace;ZE_ENABLE_NULL_DRIVER=1")
1161+
set_property(TEST test_validation_layer_api_tracing_command_queue PROPERTY ENVIRONMENT "ZE_ENABLE_VALIDATION_LAYER=1;ZEL_ENABLE_LOADER_LOGGING=1;ZEL_LOADER_LOGGING_LEVEL=trace;ZE_ENABLE_NULL_DRIVER=1")

0 commit comments

Comments
 (0)