mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-03 00:47:07 +00:00
Fix evaluation of LLVM_DEFINITIONS
CMake variable LLVM_DEFINITIONS collects preprocessor definitions provided for host compiler that builds llvm components. A function add_llvm_definitions was introduced in AddLLVMDefinitions.cmake to keep track of these definitions and was intended to be a replacement for CMake command add_definitions. Actually in many cases add_definitions is still used and the content of LLVM_DEFINITIONS is not actual now. On the other hand the current version of CMake allows getting set of definitions in a more convenient way. This fix implements evaluation of the variable by reading corresponding cmake property. Differential Revision: https://reviews.llvm.org/D31125 llvm-svn: 298336
This commit is contained in:
parent
f257d62598
commit
4367811d11
@ -367,8 +367,6 @@ set(LLVM_TARGETS_TO_BUILD
|
||||
${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD})
|
||||
list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD)
|
||||
|
||||
include(AddLLVMDefinitions)
|
||||
|
||||
option(LLVM_ENABLE_PIC "Build Position-Independent Code" ON)
|
||||
option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON)
|
||||
option(LLVM_ENABLE_MODULES "Compile with C++ modules enabled." OFF)
|
||||
|
@ -244,7 +244,7 @@ endif()
|
||||
|
||||
check_symbol_exists(__GLIBC__ stdio.h LLVM_USING_GLIBC)
|
||||
if( LLVM_USING_GLIBC )
|
||||
add_llvm_definitions( -D_GNU_SOURCE )
|
||||
add_definitions( -D_GNU_SOURCE )
|
||||
endif()
|
||||
# This check requires _GNU_SOURCE
|
||||
if(HAVE_LIBPTHREAD)
|
||||
|
@ -8,7 +8,6 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
|
||||
|
||||
include(CheckCompilerVersion)
|
||||
include(HandleLLVMStdlib)
|
||||
include(AddLLVMDefinitions)
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
@ -253,10 +252,10 @@ if( MSVC_IDE )
|
||||
"Number of parallel compiler jobs. 0 means use all processors. Default is 0.")
|
||||
if( NOT LLVM_COMPILER_JOBS STREQUAL "1" )
|
||||
if( LLVM_COMPILER_JOBS STREQUAL "0" )
|
||||
add_llvm_definitions( /MP )
|
||||
add_definitions( /MP )
|
||||
else()
|
||||
message(STATUS "Number of parallel compiler jobs set to " ${LLVM_COMPILER_JOBS})
|
||||
add_llvm_definitions( /MP${LLVM_COMPILER_JOBS} )
|
||||
add_definitions( /MP${LLVM_COMPILER_JOBS} )
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "Parallel compilation disabled")
|
||||
@ -285,17 +284,17 @@ if( MSVC )
|
||||
if( CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0 )
|
||||
# For MSVC 2013, disable iterator null pointer checking in debug mode,
|
||||
# especially so std::equal(nullptr, nullptr, nullptr) will not assert.
|
||||
add_llvm_definitions("-D_DEBUG_POINTER_IMPL=")
|
||||
add_definitions("-D_DEBUG_POINTER_IMPL=")
|
||||
endif()
|
||||
|
||||
include(ChooseMSVCCRT)
|
||||
|
||||
if( MSVC11 )
|
||||
add_llvm_definitions(-D_VARIADIC_MAX=10)
|
||||
add_definitions(-D_VARIADIC_MAX=10)
|
||||
endif()
|
||||
|
||||
# Add definitions that make MSVC much less annoying.
|
||||
add_llvm_definitions(
|
||||
add_definitions(
|
||||
# For some reason MS wants to deprecate a bunch of standard functions...
|
||||
-D_CRT_SECURE_NO_DEPRECATE
|
||||
-D_CRT_SECURE_NO_WARNINGS
|
||||
@ -306,7 +305,7 @@ if( MSVC )
|
||||
)
|
||||
|
||||
# Tell MSVC to use the Unicode version of the Win32 APIs instead of ANSI.
|
||||
add_llvm_definitions(
|
||||
add_definitions(
|
||||
-DUNICODE
|
||||
-D_UNICODE
|
||||
)
|
||||
@ -646,9 +645,9 @@ if(LLVM_USE_SPLIT_DWARF)
|
||||
add_definitions("-gsplit-dwarf")
|
||||
endif()
|
||||
|
||||
add_llvm_definitions( -D__STDC_CONSTANT_MACROS )
|
||||
add_llvm_definitions( -D__STDC_FORMAT_MACROS )
|
||||
add_llvm_definitions( -D__STDC_LIMIT_MACROS )
|
||||
add_definitions( -D__STDC_CONSTANT_MACROS )
|
||||
add_definitions( -D__STDC_FORMAT_MACROS )
|
||||
add_definitions( -D__STDC_LIMIT_MACROS )
|
||||
|
||||
# clang doesn't print colored diagnostics when invoked from Ninja
|
||||
if (UNIX AND
|
||||
@ -774,3 +773,16 @@ if(WIN32 OR CYGWIN)
|
||||
else()
|
||||
set(LLVM_ENABLE_PLUGINS ON)
|
||||
endif()
|
||||
|
||||
function(get_compile_definitions)
|
||||
get_directory_property(top_dir_definitions DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
|
||||
foreach(definition ${top_dir_definitions})
|
||||
if(DEFINED result)
|
||||
string(APPEND result " -D${definition}")
|
||||
else()
|
||||
set(result "-D${definition}")
|
||||
endif()
|
||||
endforeach()
|
||||
set(LLVM_DEFINITIONS "${result}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
get_compile_definitions()
|
||||
|
@ -31,9 +31,9 @@ get_property(COMPILE_FLAGS TARGET llvm-config PROPERTY COMPILE_FLAGS)
|
||||
# Use configure_file to create BuildVariables.inc.
|
||||
set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR})
|
||||
set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR})
|
||||
set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
|
||||
set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
|
||||
set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}")
|
||||
string(CONCAT LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS}" "${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}" "${LLVM_DEFINITIONS}")
|
||||
string(CONCAT LLVM_CFLAGS "${CMAKE_C_FLAGS}" "${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}" "${LLVM_DEFINITIONS}")
|
||||
string(CONCAT LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS}" "${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}}" "${COMPILE_FLAGS}" "${LLVM_DEFINITIONS}")
|
||||
set(LLVM_BUILD_SYSTEM cmake)
|
||||
set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI})
|
||||
set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX}")
|
||||
|
Loading…
Reference in New Issue
Block a user