mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 12:29:56 +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
|
||||
5 = -O3")
|
||||
|
||||
set(LTCG FALSE CACHE BOOL
|
||||
"Whether to build with link-time code generation")
|
||||
|
||||
set(DBG TRUE CACHE BOOL
|
||||
"Whether to compile for debugging.")
|
||||
|
||||
|
|
|
@ -16,6 +16,9 @@ set (OPTIMIZE "1" CACHE STRING
|
|||
4 = -O2
|
||||
5 = -O3")
|
||||
|
||||
set(LTCG FALSE CACHE BOOL
|
||||
"Whether to build with link-time code generation")
|
||||
|
||||
set(DBG TRUE CACHE BOOL
|
||||
"Whether to compile for debugging.")
|
||||
|
||||
|
|
|
@ -21,6 +21,9 @@ set(OPTIMIZE "1" CACHE STRING
|
|||
4 = -O2
|
||||
5 = -O3")
|
||||
|
||||
set(LTCG FALSE CACHE BOOL
|
||||
"Whether to build with link-time code generation")
|
||||
|
||||
set(GDB FALSE CACHE BOOL
|
||||
"Whether to compile for debugging with GDB.
|
||||
If you don't use GDB, don't enable this.")
|
||||
|
|
|
@ -77,6 +77,11 @@ elseif(OPTIMIZE STREQUAL "5")
|
|||
add_compile_flags("-O3")
|
||||
endif()
|
||||
|
||||
# Link-time code generation
|
||||
if(LTCG)
|
||||
add_compile_flags("-flto -Wno-error=clobbered")
|
||||
endif()
|
||||
|
||||
add_compile_flags("-fno-strict-aliasing")
|
||||
|
||||
if(ARCH MATCHES i386)
|
||||
|
@ -139,19 +144,19 @@ else()
|
|||
# Normal rsym build
|
||||
get_target_property(RSYM native-rsym IMPORTED_LOCATION_NOCONFIG)
|
||||
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>")
|
||||
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>")
|
||||
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>")
|
||||
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>")
|
||||
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>")
|
||||
endif()
|
||||
|
||||
|
|
|
@ -3,6 +3,9 @@ include_directories(include/internal/mingw-w64)
|
|||
|
||||
if(NOT MSVC)
|
||||
add_compile_flags("-Wno-main")
|
||||
if(LTCG)
|
||||
add_compile_flags("-fno-lto")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
list(APPEND MSVCRTEX_SOURCE
|
||||
|
|
|
@ -438,6 +438,11 @@ else()
|
|||
set_image_base(ntoskrnl 0x80800000)
|
||||
endif()
|
||||
|
||||
# Linker bug
|
||||
if(NOT MSVC AND LTCG)
|
||||
add_target_link_flags(ntoskrnl "-shared")
|
||||
endif()
|
||||
|
||||
target_link_libraries(ntoskrnl
|
||||
cportlib
|
||||
csq
|
||||
|
|
Loading…
Reference in a new issue