mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 04:20:46 +00:00
[CMAKE]
Allow to build with link-time code generation. svn path=/trunk/; revision=56109
This commit is contained in:
parent
296381e730
commit
3c846b4124
6 changed files with 27 additions and 5 deletions
|
@ -15,6 +15,9 @@ set (OPTIMIZE "1" CACHE STRING
|
||||||
4 = -O2
|
4 = -O2
|
||||||
5 = -O3")
|
5 = -O3")
|
||||||
|
|
||||||
|
set(LTCG FALSE CACHE BOOL
|
||||||
|
"Whether to build with link-time code generation")
|
||||||
|
|
||||||
set(DBG TRUE CACHE BOOL
|
set(DBG TRUE CACHE BOOL
|
||||||
"Whether to compile for debugging.")
|
"Whether to compile for debugging.")
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,9 @@ set (OPTIMIZE "1" CACHE STRING
|
||||||
4 = -O2
|
4 = -O2
|
||||||
5 = -O3")
|
5 = -O3")
|
||||||
|
|
||||||
|
set(LTCG FALSE CACHE BOOL
|
||||||
|
"Whether to build with link-time code generation")
|
||||||
|
|
||||||
set(DBG TRUE CACHE BOOL
|
set(DBG TRUE CACHE BOOL
|
||||||
"Whether to compile for debugging.")
|
"Whether to compile for debugging.")
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,9 @@ set(OPTIMIZE "1" CACHE STRING
|
||||||
4 = -O2
|
4 = -O2
|
||||||
5 = -O3")
|
5 = -O3")
|
||||||
|
|
||||||
|
set(LTCG FALSE CACHE BOOL
|
||||||
|
"Whether to build with link-time code generation")
|
||||||
|
|
||||||
set(GDB FALSE CACHE BOOL
|
set(GDB FALSE CACHE BOOL
|
||||||
"Whether to compile for debugging with GDB.
|
"Whether to compile for debugging with GDB.
|
||||||
If you don't use GDB, don't enable this.")
|
If you don't use GDB, don't enable this.")
|
||||||
|
|
|
@ -77,6 +77,11 @@ elseif(OPTIMIZE STREQUAL "5")
|
||||||
add_compile_flags("-O3")
|
add_compile_flags("-O3")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Link-time code generation
|
||||||
|
if(LTCG)
|
||||||
|
add_compile_flags("-flto -Wno-error=clobbered")
|
||||||
|
endif()
|
||||||
|
|
||||||
add_compile_flags("-fno-strict-aliasing")
|
add_compile_flags("-fno-strict-aliasing")
|
||||||
|
|
||||||
if(ARCH MATCHES i386)
|
if(ARCH MATCHES i386)
|
||||||
|
@ -139,19 +144,19 @@ else()
|
||||||
# Normal rsym build
|
# Normal rsym build
|
||||||
get_target_property(RSYM native-rsym IMPORTED_LOCATION_NOCONFIG)
|
get_target_property(RSYM native-rsym IMPORTED_LOCATION_NOCONFIG)
|
||||||
set(CMAKE_C_LINK_EXECUTABLE
|
set(CMAKE_C_LINK_EXECUTABLE
|
||||||
"<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
|
"<CMAKE_C_COMPILER> ${CMAKE_C_FLAGS} <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
|
||||||
"${RSYM} <TARGET> <TARGET>")
|
"${RSYM} <TARGET> <TARGET>")
|
||||||
set(CMAKE_CXX_LINK_EXECUTABLE
|
set(CMAKE_CXX_LINK_EXECUTABLE
|
||||||
"<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
|
"<CMAKE_CXX_COMPILER> ${CMAKE_CXX_FLAGS} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
|
||||||
"${RSYM} <TARGET> <TARGET>")
|
"${RSYM} <TARGET> <TARGET>")
|
||||||
set(CMAKE_C_CREATE_SHARED_LIBRARY
|
set(CMAKE_C_CREATE_SHARED_LIBRARY
|
||||||
"<CMAKE_C_COMPILER> <CMAKE_SHARED_LIBRARY_C_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
|
"<CMAKE_C_COMPILER> ${CMAKE_C_FLAGS} <CMAKE_SHARED_LIBRARY_C_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
|
||||||
"${RSYM} <TARGET> <TARGET>")
|
"${RSYM} <TARGET> <TARGET>")
|
||||||
set(CMAKE_CXX_CREATE_SHARED_LIBRARY
|
set(CMAKE_CXX_CREATE_SHARED_LIBRARY
|
||||||
"<CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
|
"<CMAKE_CXX_COMPILER> ${CMAKE_CXX_FLAGS} <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
|
||||||
"${RSYM} <TARGET> <TARGET>")
|
"${RSYM} <TARGET> <TARGET>")
|
||||||
set(CMAKE_RC_CREATE_SHARED_LIBRARY
|
set(CMAKE_RC_CREATE_SHARED_LIBRARY
|
||||||
"<CMAKE_C_COMPILER> <CMAKE_SHARED_LIBRARY_C_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
|
"<CMAKE_C_COMPILER> ${CMAKE_C_FLAGS} <CMAKE_SHARED_LIBRARY_C_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>"
|
||||||
"${RSYM} <TARGET> <TARGET>")
|
"${RSYM} <TARGET> <TARGET>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,9 @@ include_directories(include/internal/mingw-w64)
|
||||||
|
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
add_compile_flags("-Wno-main")
|
add_compile_flags("-Wno-main")
|
||||||
|
if(LTCG)
|
||||||
|
add_compile_flags("-fno-lto")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(APPEND MSVCRTEX_SOURCE
|
list(APPEND MSVCRTEX_SOURCE
|
||||||
|
|
|
@ -438,6 +438,11 @@ else()
|
||||||
set_image_base(ntoskrnl 0x80800000)
|
set_image_base(ntoskrnl 0x80800000)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Linker bug
|
||||||
|
if(NOT MSVC AND LTCG)
|
||||||
|
add_target_link_flags(ntoskrnl "-shared")
|
||||||
|
endif()
|
||||||
|
|
||||||
target_link_libraries(ntoskrnl
|
target_link_libraries(ntoskrnl
|
||||||
cportlib
|
cportlib
|
||||||
csq
|
csq
|
||||||
|
|
Loading…
Reference in a new issue