Skip to content

Commit f45f364

Browse files
Kamil Andrzejewskisys_zuul
authored andcommitted
Fix SPIRV-Tools project build in multi-configuration cmake generator.
Change-Id: Ie231b4efd0d83d8d9e190819b2becbbbad9911a1
1 parent 280b094 commit f45f364

File tree

2 files changed

+33
-25
lines changed

2 files changed

+33
-25
lines changed

IGC/AdaptorOCL/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ set(IGC_BUILD__PROJ_LABEL__AdaptorOCL "AdaptorOCL")
55

66
include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
77

8-
if(IGC_BUILD__SPIRV-Tools)
9-
include_directories("${IGC_BUILD__SPIRV-Tools_DIR}/include")
10-
endif()
11-
128
#include_directories("${CMAKE_CURRENT_SOURCE_DIR}/ocl_igc_shared/executable_format")
139

1410
set(IGC_BUILD__SRC__AdaptorOCL
@@ -145,7 +141,8 @@ add_library("${IGC_BUILD__PROJ__AdaptorOCL}" STATIC
145141

146142
add_dependencies("${IGC_BUILD__PROJ__AdaptorOCL}" "${IGC_BUILD__PROJ__GenISAIntrinsics}")
147143
if(IGC_BUILD__SPIRV-Tools)
148-
add_dependencies("${IGC_BUILD__PROJ__AdaptorOCL}" "${IGC_BUILD__PROJ__SPIRV-Tools}")
144+
target_compile_definitions("${IGC_BUILD__PROJ__AdaptorOCL}" PRIVATE $<$<NOT:$<CONFIG:Release>>:IGC_BUILD_SPIRV_TOOLS>)
145+
target_include_directories("${IGC_BUILD__PROJ__AdaptorOCL}" PRIVATE $<$<NOT:$<CONFIG:Release>>:${IGC_BUILD__SPIRV-Tools_DIR}/include>)
149146
endif()
150147
set_property(TARGET "${IGC_BUILD__PROJ__AdaptorOCL}" PROPERTY PROJECT_LABEL "${IGC_BUILD__PROJ_LABEL__AdaptorOCL}")
151148

IGC/CMakeLists.txt

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3404,7 +3404,8 @@ igc_sg_define(IGC__Common_CLElfLib)
34043404

34053405
add_subdirectory(GenISAIntrinsics)
34063406

3407-
if(LLVM_ON_WIN32 AND (("${BUILD_TYPE}" STREQUAL "debug") OR ("${BUILD_TYPE}" STREQUAL "release-internal")))
3407+
# SPIRV-Tools are only inlcuded in Windows Debug and ReleaseInternal builds.
3408+
if(LLVM_ON_WIN32 AND (CMAKE_CONFIGURATION_TYPES OR ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") OR ("${CMAKE_BUILD_TYPE}" STREQUAL "ReleaseInternal")))
34083409
set(IGC_BUILD__SPIRV-Tools ON)
34093410
endif()
34103411

@@ -3429,10 +3430,8 @@ if(IGC_BUILD__SPIRV-Tools)
34293430
message(STATUS "Option SPIRV_SKIP_EXECUTABLES: ${SPIRV_SKIP_EXECUTABLES}")
34303431
message(STATUS "Option SPIRV_HEADERS_SKIP_INSTALL: ${SPIRV_HEADERS_SKIP_INSTALL}")
34313432
message(STATUS "Option SPIRV_HEADERS_SKIP_EXAMPLES: ${SPIRV_HEADERS_SKIP_EXAMPLES}")
3432-
# add_subdirectory("${IGC_BUILD__SPIRV-Headers_DIR}" "${IGC_BUILD__SPIRV-Headers_OUTPUT_DIR}")
3433-
add_subdirectory("${IGC_BUILD__SPIRV-Tools_DIR}" "${IGC_BUILD__SPIRV-Tools_OUTPUT_DIR}")
3433+
add_subdirectory("${IGC_BUILD__SPIRV-Tools_DIR}" "${IGC_BUILD__SPIRV-Tools_OUTPUT_DIR}" EXCLUDE_FROM_ALL)
34343434
set(IGC_BUILD__PROJ__SPIRV-Tools "SPIRV-Tools")
3435-
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS IGC_BUILD_SPIRV_TOOLS)
34363435
unset(IGC_BUILD__SPIRV-Headers_OUTPUT_DIR)
34373436
unset(IGC_BUILD__SPIRV-Tools_OUTPUT_DIR)
34383437
unset(SPIRV-Headers_SOURCE_DIR)
@@ -3697,53 +3696,55 @@ foreach(_libBuildSuffix ${IGC_BUILD__MAIN_IGC_LIB_SUFFIXES})
36973696
endif()
36983697
unset(_targetType)
36993698

3700-
3701-
set(_targetLinkLine)
3699+
# list of libraries linked in all configurations
3700+
set(_targetLinkLineCommon)
3701+
# list of libraries additionally linked in Debug and ReleaseInternal configurations
3702+
set(_targetLinkLineDebugAndReleaseInternalOnly)
37023703

37033704
# Generated link line for IGC static library allows to properly use it in other projects.
37043705
if(_targetIsStatic)
3705-
list(APPEND _targetLinkLine
3706+
list(APPEND _targetLinkLineCommon
37063707
"${IGC_BUILD__PROJ${_libBuildSuffix}}"
37073708
)
37083709
endif()
37093710

37103711
if(LLVM_ON_WIN32)
3711-
list(APPEND _targetLinkLine
3712+
list(APPEND _targetLinkLineCommon
37123713
"${IGC_BUILD__PROJ__AdaptorOCL}"
37133714
)
37143715

37153716
if(IGC_OPTION__USCLAUNCHER_TOOL)
3716-
list(APPEND _targetLinkLine
3717+
list(APPEND _targetLinkLineCommon
37173718
"${IGC_BUILD__PROJ__ILAdapter}")
37183719
endif()
37193720

37203721
endif()
37213722

3722-
list(APPEND _targetLinkLine
3723+
list(APPEND _targetLinkLineCommon
37233724
"${IGC_BUILD__PROJ__AdaptorOGL}"
37243725
)
37253726

37263727
if(IGC_BUILD__SPIRV-Tools)
3727-
list(APPEND _targetLinkLine
3728-
"${IGC_BUILD__PROJ__SPIRV-Tools}"
3728+
list(APPEND _targetLinkLineDebugAndReleaseInternalOnly
3729+
"${IGC_BUILD__PROJ__SPIRV-Tools}"
37293730
)
37303731
endif()
37313732

37323733
if(IGC_BUILD__VULKAN_FRONTEND_ENABLED)
3733-
list(APPEND _targetLinkLine
3734+
list(APPEND _targetLinkLineCommon
37343735
"${IGC_BUILD__PROJ__VulkanFrontend}"
37353736
)
37363737
endif()
37373738

37383739

3739-
list(APPEND _targetLinkLine
3740+
list(APPEND _targetLinkLineCommon
37403741
"${IGC_BUILD__PROJ__Compiler}"
37413742
"${IGC_BUILD__PROJ__GenISAIntrinsics}"
37423743
GenX_IR
37433744
)
37443745

37453746
if(LLVM_ON_UNIX AND IGC_OPTION__BIF_LINK_BC)
3746-
list(APPEND _targetLinkLine
3747+
list(APPEND _targetLinkLineCommon
37473748
"${IGC_BUILD__WHOLE_ARCHIVE}"
37483749
"${IGC_BUILD__PROJ__BiFLib_OCL}"
37493750
"${IGC_BUILD__NO_WHOLE_ARCHIVE}"
@@ -3752,25 +3753,30 @@ foreach(_libBuildSuffix ${IGC_BUILD__MAIN_IGC_LIB_SUFFIXES})
37523753

37533754
# Generated link line for IGC static library allows to properly use it in other projects.
37543755
if(_targetIsStatic)
3755-
list(APPEND _targetLinkLine
3756+
list(APPEND _targetLinkLineCommon
37563757
"${IGC_BUILD__PROJ${_libBuildSuffix}}"
37573758
)
37583759
endif()
37593760

3760-
list(APPEND _targetLinkLine
3761+
list(APPEND _targetLinkLineCommon
37613762
"${IGC_BUILD__START_GROUP}"
37623763
${IGC_BUILD__LLVM_LIBS_TO_LINK}
37633764
"${IGC_BUILD__END_GROUP}"
37643765
)
37653766

37663767
if(_targetIsStatic)
37673768
# Link line for projects that use IGC as static library (allows to resolve multi-circular dependencies between libraries).
3768-
set("IGC_BUILD__LINK_LINE${_libBuildSuffix}"
3769-
${_targetLinkLine}
3769+
set("IGC_BUILD__LINK_LINE_RELEASE${_libBuildSuffix}"
3770+
${_targetLinkLineCommon}
3771+
)
3772+
set("IGC_BUILD__LINK_LINE_RELEASEINTERNAL_AND_DEBUG${_libBuildSuffix}"
3773+
${_targetLinkLineCommon}
3774+
${_targetLinkLineDebugAndReleaseInternalOnly}
37703775
)
37713776
else()
37723777
target_link_libraries("${IGC_BUILD__PROJ${_libBuildSuffix}}" PRIVATE
3773-
${_targetLinkLine}
3778+
${_targetLinkLineCommon}
3779+
$<$<NOT:$<CONFIG:Release>>:${_targetLinkLineDebugAndReleaseInternalOnly}>
37743780
${CMAKE_DL_LIBS}
37753781
)
37763782
# Link line for shared / dynamic library requires only library project (all static libs are linked inside).
@@ -3781,6 +3787,11 @@ foreach(_libBuildSuffix ${IGC_BUILD__MAIN_IGC_LIB_SUFFIXES})
37813787
endif()
37823788
endforeach()
37833789

3790+
if(IGC_BUILD__SPIRV-Tools)
3791+
# Build only in Debug and ReleaseInternal
3792+
set_property(TARGET ${IGC_BUILD__PROJ__SPIRV-Tools} PROPERTY EXCLUDE_FROM_DEFAULT_BUILD_RELEASE TRUE)
3793+
endif()
3794+
37843795
#FCL
37853796
get_property(_targetType TARGET "${IGC_BUILD__PROJ__fcl_dll}" PROPERTY TYPE)
37863797
if(_targetType MATCHES "^STATIC_LIBRARY$")

0 commit comments

Comments
 (0)