diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake index d25937dfca..1c74202845 100644 --- a/build/cmake/functions.cmake +++ b/build/cmake/functions.cmake @@ -122,13 +122,13 @@ endfunction() # Set common properties on wx library target function(wx_set_target_properties target_name is_base) # Set library name according to: - # docs/contrib/about-platform-toolkit-and-library-names.md + # docs/contributing/about-platform-toolkit-and-library-names.md if(is_base) set(lib_toolkit base) else() set(lib_toolkit ${wxBUILD_TOOLKIT}${wxBUILD_WIDGETSET}) endif() - if(WIN32) + if(MSVC) set(lib_version ${wxMAJOR_VERSION}${wxMINOR_VERSION}) else() set(lib_version ${wxMAJOR_VERSION}.${wxMINOR_VERSION}) @@ -144,47 +144,58 @@ 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_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_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}${wxARCH_SUFFIX}") + set(dll_suffix "${lib_flavour}${lib_suffix}_${wxCOMPILER_PREFIX}") if(wxBUILD_VENDOR) wx_string_append(dll_suffix "_${wxBUILD_VENDOR}") endif() - set(dll_version ${lib_version}) + set(dll_version ${wxMAJOR_VERSION}${wxMINOR_VERSION}) if(wxVERSION_IS_DEV) wx_string_append(dll_version ${wxRELEASE_NUMBER}) 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}) - if(MINGW) - # Modify MinGW output to match other build systems - set_target_properties(${target_name} - PROPERTIES - PREFIX "" - IMPORT_SUFFIX .a - ) - endif() + 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() - - 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} - PREFIX "" - ) 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 f57863deb2..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) @@ -140,19 +145,15 @@ else() set(wxCOMPILER_PREFIX) endif() -if(MSVC OR MINGW) +if(MSVC) if(wxBUILD_SHARED) set(lib_suffix "dll") else() set(lib_suffix "lib") endif() - if(MSVC) - # Include generator expression to suppress default Debug/Release pair - set(wxPLATFORM_LIB_DIR "$<1:/>${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}_${lib_suffix}") - else() - set(wxPLATFORM_LIB_DIR "/${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}_${lib_suffix}") - endif() + # Include generator expression to suppress default Debug/Release pair + set(wxPLATFORM_LIB_DIR "$<1:/>${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}_${lib_suffix}") else() set(wxPLATFORM_LIB_DIR) endif() @@ -164,7 +165,7 @@ if(wxBUILD_CUSTOM_SETUP_HEADER_PATH) set(wxSETUP_HEADER_PATH ${wxBUILD_CUSTOM_SETUP_HEADER_PATH}) else() # Set path where setup.h will be created - if(MSVC OR MINGW) + if(MSVC) if(wxUSE_UNICODE) set(lib_unicode u) else() diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake index 5e30a933f2..968dff859e 100644 --- a/build/cmake/install.cmake +++ b/build/cmake/install.cmake @@ -12,27 +12,25 @@ if(NOT wxBUILD_INSTALL) endif() install(CODE "message(STATUS \"Installing: Headers...\")") -if(UNIX) - wx_install( - DIRECTORY "${wxSOURCE_DIR}/include/wx" - DESTINATION "include/wx-${wxMAJOR_VERSION}.${wxMINOR_VERSION}") -else() +if(MSVC) wx_install( DIRECTORY "${wxSOURCE_DIR}/include/wx" DESTINATION "include") - if(MSVC) - wx_install( - DIRECTORY "${wxSOURCE_DIR}/include/msvc" - DESTINATION "include") - endif() + wx_install( + DIRECTORY "${wxSOURCE_DIR}/include/msvc" + DESTINATION "include") +else() + wx_install( + DIRECTORY "${wxSOURCE_DIR}/include/wx" + DESTINATION "include/wx-${wxMAJOR_VERSION}.${wxMINOR_VERSION}") endif() # setup header and wx-config -if(MSVC OR MINGW) +if(MSVC) wx_install( DIRECTORY "${wxSETUP_HEADER_PATH}" DESTINATION "lib${wxPLATFORM_LIB_DIR}") -elseif(UNIX) +else() wx_install( DIRECTORY "${wxSETUP_HEADER_PATH}" DESTINATION "lib/wx/include") diff --git a/build/cmake/main.cmake b/build/cmake/main.cmake index ca761d8464..c038bbb387 100644 --- a/build/cmake/main.cmake +++ b/build/cmake/main.cmake @@ -37,7 +37,7 @@ if(NOT wxBUILD_CUSTOM_SETUP_HEADER_PATH) include(build/cmake/setup.cmake) endif() -if(UNIX) +if(NOT MSVC) # Write wx-config include(build/cmake/config.cmake) endif() 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 diff --git a/build/cmake/utils/CMakeLists.txt b/build/cmake/utils/CMakeLists.txt index 21acfa3dfe..a47d615e12 100644 --- a/build/cmake/utils/CMakeLists.txt +++ b/build/cmake/utils/CMakeLists.txt @@ -21,17 +21,17 @@ if(wxUSE_XRC) set_target_properties(wxrc PROPERTIES FOLDER "Utilities") wx_install(TARGETS wxrc RUNTIME DESTINATION "bin") - if(UNIX) + if(NOT MSVC) install(CODE "execute_process( \ COMMAND ${CMAKE_COMMAND} -E rename \ - ${CMAKE_INSTALL_PREFIX}/bin/wxrc \ - ${CMAKE_INSTALL_PREFIX}/bin/wxrc-${wxMAJOR_VERSION}.${wxMINOR_VERSION} \ + ${CMAKE_INSTALL_PREFIX}/bin/wxrc${CMAKE_EXECUTABLE_SUFFIX} \ + ${CMAKE_INSTALL_PREFIX}/bin/wxrc-${wxMAJOR_VERSION}.${wxMINOR_VERSION}${CMAKE_EXECUTABLE_SUFFIX} \ )" ) install(CODE "execute_process( \ COMMAND ${CMAKE_COMMAND} -E create_symlink \ - ${CMAKE_INSTALL_PREFIX}/bin/wxrc-${wxMAJOR_VERSION}.${wxMINOR_VERSION} \ - ${CMAKE_INSTALL_PREFIX}/bin/wxrc \ + ${CMAKE_INSTALL_PREFIX}/bin/wxrc-${wxMAJOR_VERSION}.${wxMINOR_VERSION}${CMAKE_EXECUTABLE_SUFFIX} \ + ${CMAKE_INSTALL_PREFIX}/bin/wxrc${CMAKE_EXECUTABLE_SUFFIX} \ )" ) endif()