From 016061311afc6c70538ab00483c004300c5c4fa6 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Sun, 16 Feb 2020 21:33:44 +0100 Subject: [PATCH] CMake: Add wxBUILD_FLAVOUR option It is similar to --with-flavour option from configure. Mark some build options as advanced. --- build/cmake/functions.cmake | 27 ++++++++++++++++----------- build/cmake/init.cmake | 5 +++++ build/cmake/options.cmake | 4 ++++ 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake index 2c254dad86..1c74202845 100644 --- a/build/cmake/functions.cmake +++ b/build/cmake/functions.cmake @@ -144,29 +144,34 @@ function(wx_set_target_properties target_name is_base) else() set(lib_suffix) endif() + set(lib_flavour "") + if(wxBUILD_FLAVOUR) + set(lib_flavour "_${wxBUILD_FLAVOUR}") + string(REPLACE "-" "_" lib_flavour ${lib_flavour}) + endif() if(WIN32) if(MSVC) # match visual studio name set_target_properties(${target_name} PROPERTIES - OUTPUT_NAME "wx${lib_toolkit}${lib_version}${lib_unicode}${lib_suffix}" - OUTPUT_NAME_DEBUG "wx${lib_toolkit}${lib_version}${lib_unicode}d${lib_suffix}" + OUTPUT_NAME "wx${lib_toolkit}${lib_version}${lib_unicode}${lib_flavour}${lib_suffix}" + OUTPUT_NAME_DEBUG "wx${lib_toolkit}${lib_version}${lib_unicode}d${lib_flavour}${lib_suffix}" PREFIX "" ) else() # match configure name (mingw, cygwin) set_target_properties(${target_name} PROPERTIES - OUTPUT_NAME "wx_${lib_toolkit}${lib_unicode}${lib_suffix}-${lib_version}" - OUTPUT_NAME_DEBUG "wx_${lib_toolkit}${lib_unicode}d${lib_suffix}-${lib_version}" + OUTPUT_NAME "wx_${lib_toolkit}${lib_unicode}${lib_flavour}${lib_suffix}-${lib_version}" + OUTPUT_NAME_DEBUG "wx_${lib_toolkit}${lib_unicode}d${lib_flavour}${lib_suffix}-${lib_version}" PREFIX "lib" ) endif() if(wxBUILD_SHARED) # Add compiler type and or vendor - set(dll_suffix "_${wxCOMPILER_PREFIX}") + set(dll_suffix "${lib_flavour}${lib_suffix}_${wxCOMPILER_PREFIX}") if(wxBUILD_VENDOR) wx_string_append(dll_suffix "_${wxBUILD_VENDOR}") endif() @@ -177,20 +182,20 @@ function(wx_set_target_properties target_name is_base) endif() set_target_properties(${target_name} PROPERTIES - RUNTIME_OUTPUT_NAME "wx${lib_toolkit}${dll_version}${lib_unicode}${lib_suffix}${dll_suffix}" - RUNTIME_OUTPUT_NAME_DEBUG "wx${lib_toolkit}${dll_version}${lib_unicode}d${lib_suffix}${dll_suffix}" + RUNTIME_OUTPUT_NAME "wx${lib_toolkit}${dll_version}${lib_unicode}${dll_suffix}" + RUNTIME_OUTPUT_NAME_DEBUG "wx${lib_toolkit}${dll_version}${lib_unicode}d${dll_suffix}" PREFIX "" ) target_compile_definitions(${target_name} PRIVATE - "-DWXDLLNAME=wx${lib_toolkit}${dll_version}${lib_unicode}$<$:d>${lib_suffix}${dll_suffix}") + "-DWXDLLNAME=wx${lib_toolkit}${dll_version}${lib_unicode}$<$:d>${dll_suffix}") endif() else() set_target_properties(${target_name} PROPERTIES - OUTPUT_NAME wx_${lib_toolkit}${lib_unicode}${lib_suffix}-${lib_version} + OUTPUT_NAME wx_${lib_toolkit}${lib_unicode}${lib_flavour}${lib_suffix}-${lib_version} # NOTE: wx-config can not be used to connect the libraries with the debug suffix. - #OUTPUT_NAME_DEBUG wx_${lib_toolkit}${lib_unicode}d${lib_suffix}-${lib_version} - OUTPUT_NAME_DEBUG wx_${lib_toolkit}${lib_unicode}${lib_suffix}-${lib_version} + #OUTPUT_NAME_DEBUG wx_${lib_toolkit}${lib_unicode}d${lib_flavour}${lib_suffix}-${lib_version} + OUTPUT_NAME_DEBUG wx_${lib_toolkit}${lib_unicode}${lib_flavour}${lib_suffix}-${lib_version} ) endif() if(CYGWIN) diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake index 41c6d414e1..32513f1241 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake @@ -118,6 +118,11 @@ if(NOT wxBUILD_SHARED) wx_string_append(wxBUILD_FILE_ID "-static") endif() wx_string_append(wxBUILD_FILE_ID "-${wxMAJOR_VERSION}.${wxMINOR_VERSION}") +if(wxBUILD_FLAVOUR) + set(lib_flavour ${wxBUILD_FLAVOUR}) + string(REPLACE "-" "_" lib_flavour ${lib_flavour}) + wx_string_append(wxBUILD_FILE_ID "-${lib_flavour}") +endif() set(wxARCH_SUFFIX) diff --git a/build/cmake/options.cmake b/build/cmake/options.cmake index 1c0cfb8c82..5417d4a136 100644 --- a/build/cmake/options.cmake +++ b/build/cmake/options.cmake @@ -50,14 +50,18 @@ endif() if(WIN32) set(wxBUILD_VENDOR "custom" CACHE STRING "Short string identifying your company (used in DLL name)") endif() +set(wxBUILD_FLAVOUR "" CACHE STRING "Specify a name to identify the build") +mark_as_advanced(wxBUILD_FLAVOUR) wx_option(wxBUILD_OPTIMISE "use speed-optimised C/C++ compiler flags for release build" OFF) +mark_as_advanced(wxBUILD_OPTIMISE) if(MSVC) set(wxBUILD_STRIPPED_RELEASE_DEFAULT OFF) else() set(wxBUILD_STRIPPED_RELEASE_DEFAULT ON) endif() wx_option(wxBUILD_STRIPPED_RELEASE "remove debug symbols in release build" ${wxBUILD_STRIPPED_RELEASE_DEFAULT}) +mark_as_advanced(wxBUILD_STRIPPED_RELEASE) wx_option(wxUSE_NO_RTTI "disable RTTI support" OFF) # STL options