diff --git a/cmake/Modules/MacroConfigureMSVCRuntime.cmake b/cmake/Modules/MacroConfigureMSVCRuntime.cmake index b44fd0a64..c5f61b3db 100644 --- a/cmake/Modules/MacroConfigureMSVCRuntime.cmake +++ b/cmake/Modules/MacroConfigureMSVCRuntime.cmake @@ -1,38 +1,36 @@ macro(configure_msvc_runtime) - if(MSVC) - # Default to statically-linked runtime. - if("${MSVC_RUNTIME}" STREQUAL "") - set(MSVC_RUNTIME "static") - endif() - # Set compiler options. - set(variables - CMAKE_C_FLAGS_DEBUG - CMAKE_C_FLAGS_MINSIZEREL - CMAKE_C_FLAGS_RELEASE - CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_MINSIZEREL - CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_RELWITHDEBINFO + # Default to statically-linked runtime. + if("${MSVC_RUNTIME}" STREQUAL "") + set(MSVC_RUNTIME "static") + endif() + # Set compiler options. + set(variables + CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_MINSIZEREL + CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_RELWITHDEBINFO + ) + if(${MSVC_RUNTIME} STREQUAL "static") + message(STATUS + "MSVC -> forcing use of statically-linked runtime." + ) + foreach(variable ${variables}) + if(${variable} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}") + endif() + endforeach() + else() + message(STATUS + "MSVC -> forcing use of dynamically-linked runtime." ) - if(${MSVC_RUNTIME} STREQUAL "static") - message(STATUS - "MSVC -> forcing use of statically-linked runtime." - ) - foreach(variable ${variables}) - if(${variable} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}") - endif() - endforeach() - else() - message(STATUS - "MSVC -> forcing use of dynamically-linked runtime." - ) - foreach(variable ${variables}) - if(${variable} MATCHES "/MT") - string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}") - endif() - endforeach() - endif() + foreach(variable ${variables}) + if(${variable} MATCHES "/MT") + string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}") + endif() + endforeach() endif() endmacro() diff --git a/cmake/Modules/MacroGlibcDetect.cmake b/cmake/Modules/MacroGlibcDetect.cmake deleted file mode 100644 index 7e462e11b..000000000 --- a/cmake/Modules/MacroGlibcDetect.cmake +++ /dev/null @@ -1,49 +0,0 @@ - ############################################################### - # - # Copyright 2011 Red Hat, Inc. - # - # Licensed under the Apache License, Version 2.0 (the "License"); you - # may not use this file except in compliance with the License. You may - # obtain a copy of the License at - # - # http://www.apache.org/licenses/LICENSE-2.0 - # - # Unless required by applicable law or agreed to in writing, software - # distributed under the License is distributed on an "AS IS" BASIS, - # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - # See the License for the specific language governing permissions and - # limitations under the License. - # - ############################################################### - -MACRO (GLIBC_DETECT _VERSION) - -# there are multiple ways to detect glibc, but given nmi's -# cons'd up paths I will trust only gcc. I guess I could also use -# ldd --version to detect. - - set(_GLIB_SOURCE_DETECT " -#include -#include -int main() -{ - printf(\"%d%d\",__GLIBC__, __GLIBC_MINOR__); - return 0; -} -") - -file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/build/cmake/glibc.cpp "${_GLIB_SOURCE_DETECT}\n") - -try_run(POST26_GLIBC_DETECTED - POST26_GLIBC_COMPILE - ${CMAKE_CURRENT_BINARY_DIR}/build/cmake - ${CMAKE_CURRENT_BINARY_DIR}/build/cmake/glibc.cpp - RUN_OUTPUT_VARIABLE GLIBC_VERSION ) - -if (GLIBC_VERSION AND POST26_GLIBC_COMPILE ) - set(${_VERSION} ${GLIBC_VERSION}) -else() - message(STATUS "NOTE: Could not detect GLIBC_VERSION from compiler") -endif() - -ENDMACRO (GLIBC_DETECT) diff --git a/cmake/Modules/MacroQbtCompilerSettings.cmake b/cmake/Modules/MacroQbtCompilerSettings.cmake index fd4f6edfb..851a4471e 100644 --- a/cmake/Modules/MacroQbtCompilerSettings.cmake +++ b/cmake/Modules/MacroQbtCompilerSettings.cmake @@ -24,8 +24,8 @@ macro(qbt_set_compiler_options) #"-Wno-error=sign-conversion -Wno-error=float-equal" ) + # GCC 4.8 has problems with std::array and its initialization if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9) - # GCC 4.8 has problems with std::array and its initialization list(APPEND _GCC_COMMON_CXX_FLAGS "-Wno-error=missing-field-initializers") endif() @@ -39,22 +39,11 @@ macro(qbt_set_compiler_options) endif (_PEDANTIC_IS_SUPPORTED) if (CMAKE_SYSTEM_NAME MATCHES Linux) - # if Glibc version is 2.20 or higher, set -D_DEFAULT_SOURCE - include(MacroGlibcDetect) - message(STATUS "Detecting Glibc version...") - glibc_detect(GLIBC_VERSION) - if(${GLIBC_VERSION}) - if(GLIBC_VERSION LESS "220") - message(STATUS "Glibc version is ${GLIBC_VERSION}") - else(GLIBC_VERSION LESS "220") - message(STATUS "Glibc version is ${GLIBC_VERSION}, adding -D_DEFAULT_SOURCE") - add_definitions(-D_DEFAULT_SOURCE) - endif(GLIBC_VERSION LESS "220") - endif(${GLIBC_VERSION}) - endif (CMAKE_SYSTEM_NAME MATCHES Linux) + add_definitions(-D_DEFAULT_SOURCE) + endif() + # Clang 5.0 still doesn't support -Wstrict-null-sentinel if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - # Clang 5.0 still doesn't support -Wstrict-null-sentinel check_cxx_compiler_flag(-Wstrict-null-sentinel _STRICT_NULL_SENTINEL_IS_SUPPORTED) if (_STRICT_NULL_SENTINEL_IS_SUPPORTED) list(APPEND _GCC_COMMON_CXX_FLAGS "-Wstrict-null-sentinel") @@ -75,7 +64,7 @@ macro(qbt_set_compiler_options) endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - set(QBT_ADDITONAL_FLAGS "-wd4290 -wd4275 -wd4251 /W4" CACHE STRING "Additional qBittorent compile flags") + set(QBT_ADDITONAL_FLAGS "/wd4251 /wd4275 /wd4290 /W4" CACHE STRING "Additional qBittorent compile flags") endif () string(APPEND CMAKE_C_FLAGS " ${QBT_ADDITONAL_FLAGS}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1a9975a99..7aa76955c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -75,6 +75,6 @@ if (Qt5Widgets_FOUND) add_subdirectory(gui) endif () -if (WEBUI) +if (NOT DISABLE_WEBUI) add_subdirectory(webui) -endif (WEBUI) +endif() diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 84f703e99..2f79bd1dc 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -36,7 +36,7 @@ include(QbtTranslations) file(GLOB QBT_TS_FILES ../lang/*.ts) qbt_add_translations(qBittorrent QRC_FILE "../lang/lang.qrc" TS_FILES ${QBT_TS_FILES}) -if (WEBUI) +if (NOT DISABLE_WEBUI) file(GLOB QBT_WEBUI_TS_FILES ../webui/www/translations/*.ts) qbt_add_translations(qBittorrent QRC_FILE "../webui/www/translations/webui_translations.qrc" TS_FILES ${QBT_WEBUI_TS_FILES}) endif() @@ -97,9 +97,9 @@ else(Qt5Widgets_FOUND) ) endif (Qt5Widgets_FOUND) -if (WEBUI) +if (NOT DISABLE_WEBUI) target_link_libraries(qBittorrent PRIVATE qbt_webui) -endif (WEBUI) +endif() # we have to include resources into the bundle if (APPLE)