CMake: Set precompiled headers when adding libraries

Combine the three pch related functions into one.
This commit is contained in:
Maarten Bent
2022-04-09 16:25:40 +02:00
parent e2a02d4206
commit 614d58bf38
18 changed files with 9 additions and 57 deletions

View File

@@ -432,40 +432,25 @@ macro(wx_add_library name)
BUNDLE DESTINATION Applications/wxWidgets
)
wx_install(EXPORT ${name}Targets NAMESPACE wx:: DESTINATION "lib/${wxPLATFORM_LIB_DIR}/cmake")
wx_target_enable_precomp(${name} "${wxSOURCE_DIR}/include/wx/wxprec.h")
endif()
endmacro()
# Enable cotire for target, use optional second argument for prec. header
macro(wx_target_enable_precomp target_name)
target_compile_definitions(${target_name} PRIVATE WX_PRECOMP)
if(${ARGC} GREATER 1 AND NOT ${ARGV1} STREQUAL "")
set_target_properties(${target_name} PROPERTIES
COTIRE_CXX_PREFIX_HEADER_INIT ${ARGV1})
endif()
set_target_properties(${target_name} PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
cotire(${target_name})
endmacro()
# Enable precompiled headers for applications
macro(wx_app_enable_precomp target_name)
if(wxBUILD_PRECOMP)
wx_target_enable_precomp(${target_name} "${wxSOURCE_DIR}/include/wx/wxprec.h")
target_compile_definitions(${target_name} PRIVATE WX_PRECOMP)
if(${ARGC} GREATER 1 AND NOT ${ARGV1} STREQUAL "")
set_target_properties(${target_name} PROPERTIES
COTIRE_CXX_PREFIX_HEADER_INIT ${ARGV1})
endif()
set_target_properties(${target_name} PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE)
cotire(${target_name})
elseif(MSVC)
target_compile_definitions(${target_name} PRIVATE NOPCH)
endif()
endmacro()
# Enable precompiled headers for wx libraries
macro(wx_finalize_lib target_name)
if(wxBUILD_PRECOMP)
if(TARGET ${target_name})
wx_target_enable_precomp(${target_name} "${wxSOURCE_DIR}/include/wx/wxprec.h")
endif()
elseif(MSVC)
wx_lib_compile_definitions(${target_name} PRIVATE NOPCH)
endif()
endmacro()
# wx_lib_link_libraries(name [])
# Forwards everything to target_link_libraries() except for monolithic
# build where it collects all libraries for linking with the mono lib
@@ -882,7 +867,7 @@ function(wx_add name group)
set(APP_FOLDER ${group})
endif()
wx_set_common_target_properties(${target_name})
wx_app_enable_precomp(${target_name})
wx_target_enable_precomp(${target_name} "${wxSOURCE_DIR}/include/wx/wxprec.h")
set_target_properties(${target_name} PROPERTIES
FOLDER ${APP_FOLDER}
)

View File

@@ -96,7 +96,6 @@ if(wxBUILD_MONOLITHIC)
set_source_files_properties(${file} PROPERTIES HEADER_FILE_ONLY TRUE)
endforeach()
wx_webview_copy_webview2_loader(wxmono)
wx_finalize_lib(wxmono)
endif()
# Propagate variable(s) to parent scope

View File

@@ -10,5 +10,3 @@
include(../../source_groups.cmake)
wx_add_library(wxadv "${wxSOURCE_DIR}/src/common/dummy.cpp")
wx_finalize_lib(wxadv)

View File

@@ -18,5 +18,3 @@ elseif(WXGTK2)
endif()
wx_add_library(wxaui ${AUI_FILES})
wx_finalize_lib(wxaui)

View File

@@ -73,5 +73,3 @@ if(APPLE)
elseif(UNIX)
wx_lib_link_libraries(wxbase PRIVATE dl)
endif()
wx_finalize_lib(wxbase)

View File

@@ -105,5 +105,3 @@ if(wxUSE_LIBNOTIFY)
wx_lib_include_directories(wxcore ${LIBNOTIFY_INCLUDE_DIRS})
wx_lib_link_libraries(wxcore PUBLIC ${LIBNOTIFY_LIBRARIES})
endif()
wx_finalize_lib(wxcore)

View File

@@ -26,5 +26,3 @@ endif()
wx_add_library(wxgl ${GL_FILES})
wx_lib_include_directories(wxgl ${OPENGL_INCLUDE_DIR})
wx_lib_link_libraries(wxgl PUBLIC ${OPENGL_LIBRARIES})
wx_finalize_lib(wxgl)

View File

@@ -21,5 +21,3 @@ if(wxUSE_LIBMSPACK)
wx_lib_include_directories(wxhtml ${MSPACK_INCLUDE_DIRS})
wx_lib_link_libraries(wxhtml PRIVATE ${MSPACK_LIBRARIES})
endif()
wx_finalize_lib(wxhtml)

View File

@@ -53,5 +53,3 @@ elseif(WXGTK)
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_PLAYER_LIBRARIES})
endif()
endif()
wx_finalize_lib(wxmedia)

View File

@@ -35,5 +35,3 @@ if (wxUSE_WEBREQUEST_CURL)
target_include_directories(wxnet PRIVATE ${CURL_INCLUDE_DIRS})
wx_lib_link_libraries(wxnet PRIVATE ${CURL_LIBRARIES})
endif()
wx_finalize_lib(wxnet)

View File

@@ -12,5 +12,3 @@ include(../../source_groups.cmake)
wx_append_sources(PROPGRID_FILES PROPGRID)
wx_add_library(wxpropgrid ${PROPGRID_FILES})
wx_finalize_lib(wxpropgrid)

View File

@@ -13,5 +13,3 @@ wx_append_sources(QA_FILES QA)
wx_add_library(wxqa ${QA_FILES})
wx_lib_link_libraries(wxqa PUBLIC wxxml)
wx_finalize_lib(wxqa)

View File

@@ -12,5 +12,3 @@ include(../../source_groups.cmake)
wx_append_sources(RIBBON_FILES RIBBON)
wx_add_library(wxribbon ${RIBBON_FILES})
wx_finalize_lib(wxribbon)

View File

@@ -13,5 +13,3 @@ wx_append_sources(RICHTEXT_FILES RICHTEXT)
wx_add_library(wxrichtext ${RICHTEXT_FILES})
wx_lib_link_libraries(wxrichtext PRIVATE wxhtml wxxml)
wx_finalize_lib(wxrichtext)

View File

@@ -198,5 +198,3 @@ wx_lib_link_libraries(wxstc PRIVATE wxscintilla)
if(WXMSW)
wx_lib_link_libraries(wxstc PRIVATE imm32)
endif()
wx_finalize_lib(wxstc)

View File

@@ -108,8 +108,6 @@ elseif(WXGTK)
endif()
endif()
wx_finalize_lib(wxwebview)
# webkit extension plugin
# we can't use (all of the) macros and functions because this library should
# always be build as a shared libary, and not included in the monolithic build.

View File

@@ -13,5 +13,3 @@ wx_append_sources(XML_FILES XML)
wx_add_library(wxxml IS_BASE ${XML_FILES})
wx_lib_link_libraries(wxxml PRIVATE ${EXPAT_LIBRARIES})
wx_lib_include_directories(wxxml ${EXPAT_INCLUDE_DIRS})
wx_finalize_lib(wxxml)

View File

@@ -13,5 +13,3 @@ wx_append_sources(XRC_FILES XRC)
wx_add_library(wxxrc ${XRC_FILES})
wx_lib_link_libraries(wxxrc PRIVATE wxhtml wxxml)
wx_finalize_lib(wxxrc)