Skip to content
This repository has been archived by the owner on Jan 7, 2023. It is now read-only.

Commit

Permalink
IGC/LLVM Incremental build: unifying LLVM usage across different plat…
Browse files Browse the repository at this point in the history
…forms - small tuning

Change-Id: Ia78e4f5ad9ff2df78892046750ca831957149623
  • Loading branch information
pmochock committed Apr 17, 2018
1 parent 0871c14 commit 0ba9deb
Show file tree
Hide file tree
Showing 16 changed files with 291 additions and 65 deletions.
126 changes: 73 additions & 53 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
#
# Copyright (c) 2017, Intel Corporation
#===================== begin_copyright_notice ==================================
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# Copyright (c) 2017-2018 Intel Corporation.
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# ======================= end_copyright_notice ==================================

#
# LLVM libraries
Expand All @@ -35,20 +39,21 @@ function(add_dependencies_for_llvm_lib_target llvm_src_dir)
if(llvm_sub_targets)
foreach(llvm_target IN LISTS llvm_sub_targets)
add_dependencies(${LLVM_LIB_NAME} ${llvm_target})
set_target_properties(${llvm_target} PROPERTIES VS_PRE_DEFAULT_PROPS "${CMAKE_CURRENT_SOURCE_DIR}/../../WrkSpace/PropertySheets/igfx_env.props")
endforeach()
endif()
endfunction()

if(BS_USE_OSDM_BUILD_SYSTEM)
include(${BUILD_SYS_INC}/utils.cmake)
bs_find_patch()
bs_find_python()
bs_find_python2()
else()
if (NOT PATCH)
find_program(PATCH NAMES patch patch.exe)
endif()
if (NOT PYTHON)
find_program(PYTHON NAMES python python.exe)
find_program(PYTHON NAMES python2 python python2.exe python.exe)
endif()
endif()

Expand Down Expand Up @@ -153,6 +158,7 @@ if(LLVM_APPLY_PATCHES)
# Customization patches will be applied if present.
file(GLOB LLVM_EXTERNAL_PATCH_FILES "${CMAKE_CURRENT_SOURCE_DIR}/releases/4.0.0/patches_external/*.patch")
list(APPEND LLVM_PATCH_FILES ${LLVM_EXTERNAL_PATCH_FILES})
set(LLVM_APPLY_INTERNAL_PATCHES true)
if(LLVM_APPLY_INTERNAL_PATCHES)
file(GLOB LLVM_INTERNAL_PATCH_FILES "${CMAKE_CURRENT_SOURCE_DIR}/releases/4.0.0/patches_internal/*.patch")
list(APPEND LLVM_PATCH_FILES ${LLVM_INTERNAL_PATCH_FILES})
Expand All @@ -170,13 +176,10 @@ set(LLVM_DIR ${LLVM_DIR} PARENT_SCOPE)
set(LLVM_LIB_NAME ${LLVM_LIB_NAME} PARENT_SCOPE)

message(STATUS "LLVM_LIB_NAME = ${LLVM_LIB_NAME}")
message(STATUS "LLVM_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
message(STATUS "LLVM_SOURCE_URL = ${LLVM_SOURCE_URL}")
message(STATUS "LLVM_DIR = ${LLVM_DIR}")
message(STATUS "LLVM_OPTIONS = ${LLVM_OPTIONS}")

include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)

if(LLVM_USE_SOURCES_DIRECTLY)
set(LLVM_SOURCE_DIR "${CMAKE_BINARY_DIR}/llvm/src")
if(NOT EXISTS ${LLVM_SOURCE_DIR})
Expand Down Expand Up @@ -205,40 +208,57 @@ if(LLVM_USE_SOURCES_DIRECTLY)
endif()
endforeach()
endif()

set(CMAKE_INSTALL_PREFIX ${LLVM_DIR})
add_subdirectory(${LLVM_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/src)

if(CMAKE_CONFIGURATION_TYPES)
# Multi-configuration generator.
set (CMAKE_CONFIGURATION_TYPES "Debug" "Release" "ReleaseInternal")
message(STATUS "LLVM_CONFIGURATION_TYPES = ${CMAKE_CONFIGURATION_TYPES}")
else()
# Single-configuration generator.
message(STATUS "LLVM_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
endif()

add_subdirectory(${LLVM_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/src)
add_custom_target(${LLVM_LIB_NAME} ALL)
set_target_properties(${LLVM_LIB_NAME} PROPERTIES VS_PRE_DEFAULT_PROPS "${CMAKE_CURRENT_SOURCE_DIR}/../../WrkSpace/PropertySheets/igfx_env.props")
add_custom_command(TARGET ${LLVM_LIB_NAME}
COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_CONFIG_NAME=$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>$<$<CONFIG:ReleaseInternal>:ReleaseInternal> -P cmake_install.cmake
COMMAND ${CMAKE_COMMAND}
-DCMAKE_INSTALL_CONFIG_NAME=$<CONFIG>
-DCMAKE_INSTALL_PREFIX=${LLVM_DIR}
-P cmake_install.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src)
add_dependencies_for_llvm_lib_target(${LLVM_SOURCE_DIR})
else()
ExternalProject_Add(${LLVM_LIB_NAME}
URL ${LLVM_SOURCE_URL}
PREFIX src
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/src
CMAKE_ARGS -G ${CMAKE_GENERATOR}
-DCMAKE_BUILD_TYPE=$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>$<$<CONFIG:ReleaseInternal>:Release>
-DCMAKE_INSTALL_PREFIX=${LLVM_DIR}
${LLVM_OPTIONS}
INSTALL_COMMAND DESTDIR= ${CMAKE_COMMAND} --build . --target install
)
# Apply customization patches if any.
set(i 1)
set(patch_dependee "patch")
foreach(patch_file ${LLVM_PATCH_FILES})

ExternalProject_Add_Step(${LLVM_LIB_NAME} "patch${i}"
COMMAND ${PATCH} -d "${CMAKE_CURRENT_BINARY_DIR}/src/src/${LLVM_LIB_NAME}" -p1 < ${patch_file}
DEPENDEES ${patch_dependee}
DEPENDERS configure
COMMENT "Apply ${patch_file} file"
)

set(patch_dependee "patch${i}")
math(EXPR i "${i} + 1")

endforeach()

message(STATUS "LLVM_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")

include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)

ExternalProject_Add(${LLVM_LIB_NAME}
URL ${LLVM_SOURCE_URL}
PREFIX src
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/src
CMAKE_ARGS -G ${CMAKE_GENERATOR}
-DCMAKE_BUILD_TYPE=$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>$<$<CONFIG:ReleaseInternal>:Release>
-DCMAKE_INSTALL_PREFIX=${LLVM_DIR}
${LLVM_OPTIONS}
INSTALL_COMMAND DESTDIR= ${CMAKE_COMMAND} --build . --target install
)
# Apply customization patches if any.
set(i 1)
set(patch_dependee "patch")
foreach(patch_file ${LLVM_PATCH_FILES})

ExternalProject_Add_Step(${LLVM_LIB_NAME} "patch${i}"
COMMAND ${PATCH} -d "${CMAKE_CURRENT_BINARY_DIR}/src/src/${LLVM_LIB_NAME}" -p1 < ${patch_file}
DEPENDEES ${patch_dependee}
DEPENDERS configure
COMMENT "Apply ${patch_file} file"
)

set(patch_dependee "patch${i}")
math(EXPR i "${i} + 1")

endforeach()
endif()

46 changes: 46 additions & 0 deletions llvm_prebuilt.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#===================== begin_copyright_notice ==================================
#
# Copyright (c) 2018 Intel Corporation.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# ======================= end_copyright_notice ==================================

set(LLVM_USE_PREBUILT true)

if(NOT LLVM_PREBUILT_PATH)
set(LLVM_PREBUILT_PATH "${CMAKE_CURRENT_BINARY_DIR}/src")
endif()
find_path (LLVM_DIR LLVM-Config.cmake
${LLVM_PREBUILT_PATH}/lib/cmake/llvm
)
if(NOT LLVM_DIR)
message(FATAL_ERROR "LLVM prebuilt not found at: ${LLVM_PREBUILT_PATH}/lib/cmake/llvm")
endif()
find_package(LLVM REQUIRED CONFIG)
message(STATUS "[LLVM Prebuilt] Found LLVM ${LLVM_PACKAGE_VERSION} in ${LLVM_DIR}")
message(STATUS "[LLVM Prebuilt] Using LLVM includes from: ${LLVM_INCLUDE_DIRS}")
message(STATUS "[LLVM Prebuilt] Using LLVM libraries from: ${LLVM_LIBRARY_DIR}")
unset(LLVM_DIR CACHE)

#set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} PARENT_SCOPE)
#set(LLVM_LIBRARY_DIR ${LLVM_LIBRARY_DIR} PARENT_SCOPE)
#set(LLVM_DEFINITIONS ${LLVM_DEFINITIONS} PARENT_SCOPE)
151 changes: 151 additions & 0 deletions llvm_utils.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
#===================== begin_copyright_notice ==================================
#
# Copyright (c) 2018 Intel Corporation.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# ======================= end_copyright_notice ==================================


#
# Macro to clear and backup build flags already set
#
macro(llvm_utils_push_build_flags)
message(STATUS "[LLVM] Clearing build system compilation flags")

set(CMAKE_C_FLAGS_BACKUP ${CMAKE_C_FLAGS})
set(CMAKE_CXX_FLAGS_BACKUP ${CMAKE_CXX_FLAGS})
set(CMAKE_SHARED_LINKER_FLAGS_BACKUP ${CMAKE_SHARED_LINKER_FLAGS})
set(CMAKE_EXE_LINKER_FLAGS_BACKUP ${CMAKE_EXE_LINKER_FLAGS})
set(CMAKE_STATIC_LINKER_FLAGS_BACKUP ${CMAKE_STATIC_LINKER_FLAGS})
set(CMAKE_LOCAL_LINKER_FLAGS_BACKUP ${CMAKE_LOCAL_LINKER_FLAGS})
set(CMAKE_MODULE_LINKER_FLAGS_BACKUP ${CMAKE_MODULE_LINKER_FLAGS})

if(PRINT_DEBUG)
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_SHARED_LINKER_FLAGS = ${CMAKE_SHARED_LINKER_FLAGS}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_EXE_LINKER_FLAGS = ${CMAKE_EXE_LINKER_FLAGS}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_STATIC_LINKER_FLAGS = ${CMAKE_STATIC_LINKER_FLAGS}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_LOCAL_LINKER_FLAGS = ${CMAKE_LOCAL_LINKER_FLAGS}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_MODULE_LINKER_FLAGS = ${CMAKE_MODULE_LINKER_FLAGS}")
endif()

unset(CMAKE_C_FLAGS)
unset(CMAKE_CXX_FLAGS)
unset(CMAKE_SHARED_LINKER_FLAGS)
unset(CMAKE_EXE_LINKER_FLAGS)
unset(CMAKE_STATIC_LINKER_FLAGS)
unset(CMAKE_LOCAL_LINKER_FLAGS)
unset(CMAKE_MODULE_LINKER_FLAGS)

foreach(configuration_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE})
string(TOUPPER ${configuration_type} capitalized_configuration_type)

set(CMAKE_C_FLAGS_${capitalized_configuration_type}_BACKUP ${CMAKE_C_FLAGS_${capitalized_configuration_type}})
set(CMAKE_CXX_FLAGS_${capitalized_configuration_type}_BACKUP ${CMAKE_CXX_FLAGS_${capitalized_configuration_type}})
set(CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP ${CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type}})
set(CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP ${CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type}})
set(CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP ${CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type}})
set(CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP ${CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type}})

if(PRINT_DEBUG)
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_C_FLAGS_${capitalized_configuration_type} = ${CMAKE_C_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_CXX_FLAGS_${capitalized_configuration_type} = ${CMAKE_CXX_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type} = ${CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type} = ${CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type} = ${CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_push_build_flags() CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type} = ${CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type}}")
endif()

unset(CMAKE_C_FLAGS_${capitalized_configuration_type})
unset(CMAKE_CXX_FLAGS_${capitalized_configuration_type})
unset(CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type})
unset(CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type})
unset(CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type})
unset(CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type})

endforeach()

endmacro()

#
# Macro to restore build flags set previously
#
macro(llvm_utils_pop_build_flags)
message(STATUS "[LLVM] Restoring build system compilation flags")

set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS_BACKUP})
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_BACKUP})
set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS_BACKUP})
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS_BACKUP})
set(CMAKE_STATIC_LINKER_FLAGS ${CMAKE_STATIC_LINKER_FLAGS_BACKUP})
set(CMAKE_LOCAL_LINKER_FLAGS ${CMAKE_LOCAL_LINKER_FLAGS_BACKUP})
set(CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS_BACKUP})

if(PRINT_DEBUG)
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_SHARED_LINKER_FLAGS = ${CMAKE_SHARED_LINKER_FLAGS}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_EXE_LINKER_FLAGS = ${CMAKE_EXE_LINKER_FLAGS}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_STATIC_LINKER_FLAGS = ${CMAKE_STATIC_LINKER_FLAGS}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_LOCAL_LINKER_FLAGS = ${CMAKE_LOCAL_LINKER_FLAGS}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_MODULE_LINKER_FLAGS = ${CMAKE_MODULE_LINKER_FLAGS}")
endif()

unset(CMAKE_C_FLAGS_BACKUP)
unset(CMAKE_CXX_FLAGS_BACKUP)
unset(CMAKE_SHARED_LINKER_FLAGS_BACKUP)
unset(CMAKE_EXE_LINKER_FLAGS_BACKUP)
unset(CMAKE_STATIC_LINKER_FLAGS_BACKUP)
unset(CMAKE_LOCAL_LINKER_FLAGS_BACKUP)
unset(CMAKE_MODULE_LINKER_FLAGS_BACKUP)

foreach(configuration_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE})
string(TOUPPER ${configuration_type} capitalized_configuration_type)

set(CMAKE_C_FLAGS_${capitalized_configuration_type} ${CMAKE_C_FLAGS_${capitalized_configuration_type}_BACKUP})
set(CMAKE_CXX_FLAGS_${capitalized_configuration_type} ${CMAKE_CXX_FLAGS_${capitalized_configuration_type}_BACKUP})
set(CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type} ${CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP})
set(CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type} ${CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP})
set(CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type} ${CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP})
set(CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type} ${CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP})

if(PRINT_DEBUG)
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_C_FLAGS_${capitalized_configuration_type} = ${CMAKE_C_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_CXX_FLAGS_${capitalized_configuration_type} = ${CMAKE_CXX_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type} = ${CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type} = ${CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type} = ${CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type}}")
message(STATUS "[LLVM] llvm_utils_pop_build_flags() CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type} = ${CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type}}")
endif()

unset(CMAKE_C_FLAGS_${capitalized_configuration_type}_BACKUP)
unset(CMAKE_CXX_FLAGS_${capitalized_configuration_type}_BACKUP)
unset(CMAKE_SHARED_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP)
unset(CMAKE_EXE_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP)
unset(CMAKE_STATIC_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP)
unset(CMAKE_MODULE_LINKER_FLAGS_${capitalized_configuration_type}_BACKUP)

endforeach()

endmacro()

0 comments on commit 0ba9deb

Please sign in to comment.