mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-03 19:42:45 +01:00
cmake: Remove PCH support
Compilers are very picky and don't use PCH when they have been compiled with different flags. I even got some ICE in MSVC, so removing them for now. Modules are the solution.
This commit is contained in:
parent
f70a1a27fa
commit
fa04c1479e
@ -11,7 +11,6 @@ option(USE_SHARED_GTEST "Use shared gtest library if found" OFF)
|
|||||||
option(USE_UPNP "Enables UPnP port mapping support" ON)
|
option(USE_UPNP "Enables UPnP port mapping support" ON)
|
||||||
option(DISABLE_WX "Disable wxWidgets (use Qt or CLI interface)" OFF)
|
option(DISABLE_WX "Disable wxWidgets (use Qt or CLI interface)" OFF)
|
||||||
option(ENABLE_QT2 "Enable Qt2 (use the other experimental Qt interface)" OFF)
|
option(ENABLE_QT2 "Enable Qt2 (use the other experimental Qt interface)" OFF)
|
||||||
option(ENABLE_PCH "Use PCH to speed up compilation" ON)
|
|
||||||
option(ENABLE_LTO "Enables Link Time Optimization" OFF)
|
option(ENABLE_LTO "Enables Link Time Optimization" OFF)
|
||||||
option(ENABLE_GENERIC "Enables generic build that should run on any little-endian host" OFF)
|
option(ENABLE_GENERIC "Enables generic build that should run on any little-endian host" OFF)
|
||||||
option(ENABLE_HEADLESS "Enables running Dolphin as a headless variant" OFF)
|
option(ENABLE_HEADLESS "Enables running Dolphin as a headless variant" OFF)
|
||||||
@ -122,34 +121,6 @@ endif()
|
|||||||
# as defined above.
|
# as defined above.
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Binaries)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Binaries)
|
||||||
|
|
||||||
# Precompiled header support for MSVC:
|
|
||||||
# Call this after setting the source list (and don't add the source file used
|
|
||||||
# to generate the pch file, this will be done here automatically)
|
|
||||||
function(enable_precompiled_headers PRECOMPILED_HEADER SOURCE_FILE SOURCE_VARIABLE_NAME)
|
|
||||||
if(MSVC)
|
|
||||||
set(files ${${SOURCE_VARIABLE_NAME}})
|
|
||||||
|
|
||||||
# Generate precompiled header translation unit
|
|
||||||
get_filename_component(pch_basename ${PRECOMPILED_HEADER} NAME_WE)
|
|
||||||
set(pch_abs ${CMAKE_CURRENT_SOURCE_DIR}/${PRECOMPILED_HEADER})
|
|
||||||
set(pch_unity ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE})
|
|
||||||
set_source_files_properties(${pch_unity} PROPERTIES COMPILE_FLAGS
|
|
||||||
"/Yc\"${pch_abs}\"")
|
|
||||||
|
|
||||||
# Update properties of source files to use the precompiled header.
|
|
||||||
# Additionally, force the inclusion of the precompiled header at
|
|
||||||
# beginning of each source file.
|
|
||||||
foreach(source_file ${files} )
|
|
||||||
set_source_files_properties(${source_file} PROPERTIES COMPILE_FLAGS
|
|
||||||
"/Yu\"${pch_abs}\" /FI\"${pch_abs}\"")
|
|
||||||
endforeach(source_file)
|
|
||||||
|
|
||||||
# Finally, update the source file collection to contain the
|
|
||||||
# precompiled header translation unit
|
|
||||||
set(${SOURCE_VARIABLE_NAME} ${pch_unity} ${${SOURCE_VARIABLE_NAME}} PARENT_SCOPE)
|
|
||||||
endif(MSVC)
|
|
||||||
endfunction(enable_precompiled_headers)
|
|
||||||
|
|
||||||
# setup CCache
|
# setup CCache
|
||||||
include(CCache)
|
include(CCache)
|
||||||
|
|
||||||
|
1
Externals/wxWidgets3/CMakeLists.txt
vendored
1
Externals/wxWidgets3/CMakeLists.txt
vendored
@ -890,6 +890,5 @@ add_definitions(-DWXBUILDING)
|
|||||||
# wxWidgets warnings are not our problem.
|
# wxWidgets warnings are not our problem.
|
||||||
add_definitions(-w)
|
add_definitions(-w)
|
||||||
|
|
||||||
#enable_precompiled_headers(include/wx/wxprec.h src/common/dummy.cpp SRCS)
|
|
||||||
add_library(wx STATIC ${PNG_SRCS} ${SRCS})
|
add_library(wx STATIC ${PNG_SRCS} ${SRCS})
|
||||||
target_link_libraries(wx ${LIBS})
|
target_link_libraries(wx ${LIBS})
|
||||||
|
@ -65,7 +65,7 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
arguments "-DANDROID_STL=c++_static", "-DCMAKE_BUILD_TYPE=RelWithDebInfo", "-DENABLE_PCH=OFF" // , "-DENABLE_GENERIC=ON"
|
arguments "-DANDROID_STL=c++_static", "-DCMAKE_BUILD_TYPE=RelWithDebInfo" // , "-DENABLE_GENERIC=ON"
|
||||||
abiFilters "arm64-v8a" //, "armeabi-v7a", "x86_64", "x86"
|
abiFilters "arm64-v8a" //, "armeabi-v7a", "x86_64", "x86"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,52 +8,9 @@ endif()
|
|||||||
add_definitions(-D__STDC_LIMIT_MACROS)
|
add_definitions(-D__STDC_LIMIT_MACROS)
|
||||||
add_definitions(-D__STDC_CONSTANT_MACROS)
|
add_definitions(-D__STDC_CONSTANT_MACROS)
|
||||||
|
|
||||||
set(CMAKE_FAKELANG_CREATE_STATIC_LIBRARY "touch <TARGET>")
|
|
||||||
if(ENABLE_PCH)
|
|
||||||
# This is actually a .h file, but trick cmake into compiling it as a source file
|
|
||||||
set(pch_out_filename "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/pch.dir/pch.h")
|
|
||||||
if (ANDROID)
|
|
||||||
set(pch_lib_filename "${LIBRARY_OUTPUT_PATH}/libpch.a")
|
|
||||||
else()
|
|
||||||
set(pch_lib_filename "${CMAKE_CURRENT_BINARY_DIR}/libpch.a")
|
|
||||||
endif()
|
|
||||||
set(pch_src_filename "${CMAKE_CURRENT_SOURCE_DIR}/PCH/pch.h")
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
set(type objective-c++-header)
|
|
||||||
else()
|
|
||||||
set(type c++-header)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_source_files_properties(
|
|
||||||
PCH/pch.h PROPERTIES
|
|
||||||
COMPILE_FLAGS "-x ${type}"
|
|
||||||
HEADER_FILE_ONLY 0
|
|
||||||
LANGUAGE CXX)
|
|
||||||
|
|
||||||
add_library(pch STATIC PCH/pch.h)
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
TARGET pch
|
|
||||||
PRE_LINK
|
|
||||||
COMMAND ln -fs "${pch_out_filename}.o" "${pch_out_filename}.gch"
|
|
||||||
COMMAND ln -fs "${pch_out_filename}.o" "${pch_out_filename}.pch"
|
|
||||||
COMMAND cp "${pch_src_filename}" "${pch_out_filename}")
|
|
||||||
|
|
||||||
set_target_properties(
|
|
||||||
pch PROPERTIES
|
|
||||||
LINKER_LANGUAGE FAKELANG)
|
|
||||||
endif(ENABLE_PCH)
|
|
||||||
macro(add_dolphin_library lib srcs libs)
|
macro(add_dolphin_library lib srcs libs)
|
||||||
add_library(${lib} STATIC ${srcs})
|
add_library(${lib} STATIC ${srcs})
|
||||||
target_link_libraries(${lib} ${libs})
|
target_link_libraries(${lib} ${libs})
|
||||||
if(ENABLE_PCH)
|
|
||||||
add_dependencies(${lib} pch)
|
|
||||||
set_source_files_properties(
|
|
||||||
${srcs} PROPERTIES
|
|
||||||
COMPILE_FLAGS "-include '${pch_out_filename}'"
|
|
||||||
OBJECT_DEPENDS "${pch_lib_filename}")
|
|
||||||
endif(ENABLE_PCH)
|
|
||||||
endmacro(add_dolphin_library)
|
endmacro(add_dolphin_library)
|
||||||
|
|
||||||
add_subdirectory(Core)
|
add_subdirectory(Core)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user