From 4c1690ac4783c7334462b4140a9c41526edbae44 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 10 May 2018 14:54:31 +0200 Subject: CMake: require at least CMake 3.5 CMake 3.11 with the Ninja generator started complaining about CMP0058 related to ui/qt/CMakeFiles/qtui_autogen.dir/RCCstock_iconsInfo.cmake amd other files (AUTORCC). While the policy could be set explicitly, let's try to modernize the CMake configuration: - Drop CMP0042, if this gives issues with macOS, then it must be solved in a different way using non-deprecated methods. - Drop CMP0054 and ensure that all if("${foo}") and if(${foo}) are converted to if(foo). - Remove string comparison against "-NOTFOUND", it already evaluates to false in an if condition. - Use CXX_STANDARD/CXX_STANDARD_REQUIRED for Qt 5.7 and newer. - Assume that copy_if_different can accept multiple sources (CMake 3.5). - Consistency: Out of the 60 CMake 3.11 FindXxx.cmake files that use find_library, 34 contain "XXX_LIBRAR" while 16 contain "Xxx_LIBRAR". Let's assume uppercase variables (now custom MaxMindDB include dirs are correctly used). CMake 3.5 was chosen as the next version because of its wide support. Ubuntu 14.04 ships with cmake3 3.5.1, Debian jessie-backports has 3.6.2, EPEL for CentOS/RHEL6 includes cmake3 3.6.1 and SLES12 SP2 has 3.5. Change-Id: I2fa7b94bf8cc78411f414987d17bab3a33dfb360 Reviewed-on: https://code.wireshark.org/review/27444 Petri-Dish: Peter Wu Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- CMakeLists.txt | 125 +++++++++++++--------------------------- debian/control | 2 +- epan/CMakeLists.txt | 9 +-- epan/dissectors/CMakeLists.txt | 2 +- packaging/nsis/CMakeLists.txt | 4 +- packaging/rpm/wireshark.spec.in | 2 +- packaging/wix/CMakeLists.txt | 4 +- tools/debian-setup.sh | 6 +- ui/qt/CMakeLists.txt | 34 ++++------- 9 files changed, 63 insertions(+), 125 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2291ff9f2a..2a5895b73b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,22 +38,12 @@ if(WIN32) # Needed for GREATER_EQUAL operator cmake_minimum_required(VERSION 3.7) else() - cmake_minimum_required(VERSION 2.8.12) + cmake_minimum_required(VERSION 3.5) endif() #Where to find local cmake scripts set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) -# Set old behaviour for MACOSX_RPATH (since 3.0) -if (POLICY CMP0042) - cmake_policy(SET CMP0042 OLD) -endif() - -# Set old behaviour for variable quoting (since 3.1) -if (POLICY CMP0054) - cmake_policy(SET CMP0054 OLD) -endif() - # If our target platform is enforced by our generator, set # WIRESHARK_TARGET_PLATFORM accordingly. Otherwise use # %WIRESHARK_TARGET_PLATFORM%. @@ -61,15 +51,15 @@ endif() if(WIN32) find_package(PowerShell REQUIRED) - if(${CMAKE_CL_64} OR "${CMAKE_GENERATOR}" MATCHES "Win64") + if(CMAKE_CL_64 OR CMAKE_GENERATOR MATCHES "Win64") set(WIRESHARK_TARGET_PLATFORM win64) - elseif("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + elseif(CMAKE_GENERATOR MATCHES "Visual Studio") set(WIRESHARK_TARGET_PLATFORM win32) else() set(WIRESHARK_TARGET_PLATFORM $ENV{WIRESHARK_TARGET_PLATFORM}) endif() - if ("${WIRESHARK_TARGET_PLATFORM}" MATCHES "win64") + if(WIRESHARK_TARGET_PLATFORM MATCHES "win64") set(WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE amd64) else() set(WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE x86) @@ -125,7 +115,7 @@ if(WIN32) COMMAND ${POWERSHELL_COMMAND} "\"${_win_setup}\"" -Destination "${_ws_lib_dir}" -Platform ${WIRESHARK_TARGET_PLATFORM} -VSVersion ${_vsversion_args} RESULT_VARIABLE _win_setup_failed ) - if (${_win_setup_failed}) + if(_win_setup_failed) message(FATAL_ERROR "Windows setup (win-setup.ps1) failed.") endif() @@ -177,10 +167,10 @@ include(GNUInstallDirs) # https://cmake.org/Wiki/CMake_RPATH_handling if(NOT CMAKE_INSTALL_RPATH AND NOT (WIN32 OR APPLE)) LIST(FIND CMAKE_C_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_FULL_LIBDIR}" IS_SYSTEM_DIR) - if("${IS_SYSTEM_DIR}" STREQUAL "-1") + if(IS_SYSTEM_DIR STREQUAL "-1") SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - endif("${IS_SYSTEM_DIR}" STREQUAL "-1") + endif() endif() # Banner shown at top right of Qt welcome screen. @@ -210,31 +200,31 @@ include(UseAsn2Wrs) # lookup tables for the epan libraries # Check if CXX flags have been set to c++11 -> Setup Eclipse Indexer correctly! # Also setup the project slightly different -if (${CMAKE_EXTRA_GENERATOR} MATCHES "Eclipse CDT4" ) +if(CMAKE_EXTRA_GENERATOR MATCHES "Eclipse CDT4") SET(CXX_ENABLED 0) LIST(LENGTH CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS LIST_LEN) - if ( ${LIST_LEN} GREATER 0 ) + if(LIST_LEN GREATER 0) SET(CXX_ENABLED 1) endif() SET(C_ENABLED 0) LIST(LENGTH CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS LIST_LEN) - if ( ${LIST_LEN} GREATER 0) + if(LIST_LEN GREATER 0) SET(C_ENABLED 1) endif() - if (${C_ENABLED} EQUAL 1 AND ${CXX_ENABLED} EQUAL 1) + if(C_ENABLED EQUAL 1 AND CXX_ENABLED EQUAL 1) # Combined project (C and CXX). This will confuse the indexer. For that reason # we unsert set the __cplusplus variable for the indexer list(FIND CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS "__cplusplus" GEN_MACRO_INDEX) - if( ${GEN_MACRO_INDEX} GREATER -1 ) + if(GEN_MACRO_INDEX GREATER -1) list(REMOVE_AT CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS ${GEN_MACRO_INDEX}) list(REMOVE_AT CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS ${GEN_MACRO_INDEX}) endif() SET(CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS ${CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS} CACHE INTERNAL "") - elseif ( (${CXX_ENABLED} EQUAL 1) AND (${CMAKE_CXX_FLAGS} MATCHES ".*-std=c\\+\\+11.*")) + elseif((CXX_ENABLED EQUAL 1) AND (CMAKE_CXX_FLAGS MATCHES ".*-std=c\\+\\+11.*")) #add_definitions (-D__cplusplus=201103L) # CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS list(FIND CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS "199711L" GEN_MACRO_INDEX) - if( ${GEN_MACRO_INDEX} GREATER -1 ) + if(GEN_MACRO_INDEX GREATER -1) list(REMOVE_AT CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS ${GEN_MACRO_INDEX}) list(INSERT CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS ${GEN_MACRO_INDEX} "201103L") SET(CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS ${CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS} CACHE INTERNAL "") @@ -305,7 +295,7 @@ if( CMAKE_C_COMPILER_ID MATCHES "MSVC") /D_ALLOW_KEYWORD_MACROS ) - if(NOT "${WIRESHARK_TARGET_PLATFORM}" STREQUAL "win64") + if(NOT WIRESHARK_TARGET_PLATFORM STREQUAL "win64") add_definitions("/D_BIND_TO_CURRENT_CRT_VERSION=1") endif() @@ -364,13 +354,13 @@ if( CMAKE_C_COMPILER_ID MATCHES "MSVC") else() # ! MSVC if(CMAKE_OSX_DEPLOYMENT_TARGET) if(APPLE) - if(${CMAKE_OSX_DEPLOYMENT_TARGET} STREQUAL "10.0") + if(CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.0") message(FATAL_ERROR "We don't support building for Mac OS X 10.0") - elseif(${CMAKE_OSX_DEPLOYMENT_TARGET} STREQUAL "10.1") + elseif(CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.1") message(FATAL_ERROR "We don't support building for Mac OS X 10.1") - elseif(${CMAKE_OSX_DEPLOYMENT_TARGET} STREQUAL "10.2") + elseif(CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.2") message(FATAL_ERROR "We don't support building for Mac OS X 10.2") - elseif(${CMAKE_OSX_DEPLOYMENT_TARGET} STREQUAL "10.4" OR ${CMAKE_OSX_DEPLOYMENT_TARGET} STREQUAL "10.5") + elseif(CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.4" OR CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.5") # # Only 32-bit builds are supported. 10.5 # (and 10.4?) had a bug that causes some BPF @@ -1051,26 +1041,18 @@ string(REPLACE ";" " " _package_list "${PACKAGELIST}") message(STATUS "Package List: ${_package_list}") # Let's loop the package list foreach(PACKAGE ${PACKAGELIST}) - if(${PACKAGE} STREQUAL "PythonInterp") - set(PACKAGE_VAR "PYTHONINTERP") - elseif(${PACKAGE} STREQUAL "Gettext") - set(PACKAGE_VAR "GETTEXT") - elseif(${PACKAGE} STREQUAL "Perl") - set(PACKAGE_VAR "PERL") - elseif(${PACKAGE} STREQUAL "LibXml2") - set(PACKAGE_VAR "LIBXML2") + # Most packages export uppercase variables, but there are exceptions. + if(PACKAGE MATCHES "^(Qt5)") + set(PACKAGE_VAR "${PACKAGE}") else() - set(PACKAGE_VAR ${PACKAGE}) + string(TOUPPER "${PACKAGE}" PACKAGE_VAR) endif() if(${PACKAGE}_OPTIONS) find_package(${PACKAGE} ${${PACKAGE}_OPTIONS}) else() find_package(${PACKAGE}) endif() - # FindPackageHandleStandardArgs before CMake 3.2 always uses uppercase - # for the FOUND variables (e.g. GIT_FOUND is set, but not Git_FOUND). - string(TOUPPER "${PACKAGE_VAR}" PACKAGE_VAR_UPPER) - if (${PACKAGE_VAR}_FOUND OR ${PACKAGE_VAR_UPPER}_FOUND) + if (${PACKAGE_VAR}_FOUND) message(STATUS "${PACKAGE_VAR} FOUND") set(HAVE_LIB${PACKAGE_VAR} 1) if (NOT DEFINED ${PACKAGE_VAR}_INCLUDE_DIRS AND ${PACKAGE_VAR}_INCLUDE_DIR) @@ -1196,14 +1178,9 @@ if (Qt5Widgets_FOUND) endif() if (Qt5Widgets_VERSION VERSION_GREATER 5.6 AND (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")) - # Qt 5.7 and later require C++ 11. If our minmimu required CMake version - # is ever >= 3.1 we can use CXX_STANDARD + CXX_STANDARD_REQUIRED. - message(STATUS "Checking for C++ 11 support (Required by Qt 5.7 and later)") - check_cxx_compiler_flag(-std=c++11 CXX__std_c__11_VALID) - if(NOT CXX__std_c__11_VALID) - message(FATAL_ERROR "Qt ${Qt5Widgets_VERSION} requires C++ 11") - endif() - set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") + # Qt 5.7 and later require C++ 11. + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) endif() set (QT_FOUND ON) set (QT_LIBRARIES ${Qt5Widgets_LIBRARIES} ${Qt5PrintSupport_LIBRARIES}) @@ -1406,15 +1383,8 @@ if (GIT_EXECUTABLE) set(GIT_BIN_PARAM --git-bin ${GIT_EXECUTABLE}) endif() set( VERSION ${PROJECT_VERSION} ) -if(NOT CMAKE_VERSION VERSION_LESS "3.2.1") - # Prevents unnecessary rebuilds by ensuring that dependents are not - # built before make-version.pl finishes (which may touch version.h). - set(version_byproducts BYPRODUCTS version.h) -else() - set(version_byproducts "") -endif() add_custom_target(version - ${version_byproducts} + BYPRODUCTS version.h COMMAND ${PERL_EXECUTABLE} ${CMAKE_SOURCE_DIR}/make-version.pl --set-vcs ${GIT_BIN_PARAM} @@ -1692,8 +1662,6 @@ if(WIN32) # The gio, gnutls, png, and other OBS-generated DLLs depend on # zlib1.dll. We compile zlib locally but the Debug configuration # (the default) creates zlibd1.dll. - # Note: Passing multiple files to copy_if_different requires - # CMake 3.5 or later. add_custom_command(TARGET copy_cli_dlls PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${GLIB2_DLLS} $<$:zlib1.dll> @@ -1823,9 +1791,7 @@ if(WIN32) PATH "$ENV{PROGRAMFILES}/7-Zip" "$ENV{PROGRAMW6432}/7-Zip" DOC "Path to the 7z utility." ) - # XXX "if(ZIP_EXECUTABLE)" doesn't work here. It looks like the - # absence of "-NOTFOUND" doesn't equal "true". - if (NOT "${ZIP_EXECUTABLE}" STREQUAL "ZIP_EXECUTABLE-NOTFOUND") + if(ZIP_EXECUTABLE) add_custom_target(pdb_zip_package) set_target_properties(pdb_zip_package PROPERTIES FOLDER "Packaging") set(_pdb_zip "${CMAKE_BINARY_DIR}/Wireshark-pdb-${WIRESHARK_TARGET_PLATFORM}-${VERSION}.zip") @@ -1972,8 +1938,6 @@ list(APPEND DATA_FILES_SRC # Copy all paths from the source tree to the data directory. Directories are # automatically created if missing as the filename is given. -# TODO Switch to cmake -E copy_if_different when our minimum CMake version -# is >= 3.5 everywhere. file(GLOB _data_files RELATIVE "${CMAKE_SOURCE_DIR}" ${DATA_FILES_SRC}) foreach(_data_file ${_data_files}) add_custom_command(OUTPUT "${DATAFILE_DIR}/${_data_file}" @@ -1986,13 +1950,6 @@ foreach(_data_file ${_data_files}) list(APPEND copy_data_files_depends "${DATAFILE_DIR}/${_data_file}") endforeach() -if(CMAKE_VERSION VERSION_LESS 3.5) - # To bad -u / --update is a GNU extension. - set (MULTI_COPY_COMMAND cp) -else() - set (MULTI_COPY_COMMAND ${CMAKE_COMMAND} -E copy_if_different) -endif() - add_custom_command( OUTPUT "${DATAFILE_DIR}/dtds" "${DATAFILE_DIR}/diameter" "${DATAFILE_DIR}/radius" COMMAND ${CMAKE_COMMAND} -E make_directory "${DATAFILE_DIR}/dtds" @@ -2009,7 +1966,7 @@ endforeach() add_custom_command( OUTPUT ${_dtds_data_files} - COMMAND ${MULTI_COPY_COMMAND} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_dtds_src_files} "${DATAFILE_DIR}/dtds" VERBATIM @@ -2029,7 +1986,7 @@ endforeach() add_custom_command( OUTPUT ${_diameter_data_files} - COMMAND ${MULTI_COPY_COMMAND} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_diameter_src_files} "${DATAFILE_DIR}/diameter" VERBATIM @@ -2051,7 +2008,7 @@ endforeach() add_custom_command( OUTPUT ${_radius_data_files} - COMMAND ${MULTI_COPY_COMMAND} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_radius_src_files} "${DATAFILE_DIR}/radius" VERBATIM @@ -2246,7 +2203,7 @@ if(BUILD_wireshark AND QT_FOUND) HINTS "${_qmake_location}" DOC "Path to the windeployqt utility." ) - if (NOT "${QT_WINDEPLOYQT_EXECUTABLE}" STREQUAL "QT_WINDEPLOYQT_EXECUTABLE-NOTFOUND") + if(QT_WINDEPLOYQT_EXECUTABLE) set(QT_BIN_PATH "${_qt_bin_path}" CACHE INTERNAL "Path to qmake, windeployqt, and other Qt utilities." ) @@ -2663,7 +2620,7 @@ if (WIN32) # Must come after executable targets are defined. find_package( NSIS ) - if (NOT "${MAKENSIS_EXECUTABLE}" STREQUAL "MAKENSIS_EXECUTABLE-NOTFOUND") + if(MAKENSIS_EXECUTABLE) add_subdirectory( packaging/nsis EXCLUDE_FROM_ALL ) ADD_NSIS_UNINSTALLER_TARGET() ADD_NSIS_PACKAGE_TARGET() @@ -2671,17 +2628,13 @@ if (WIN32) find_package( WiX ) - if (NOT "${WIX_CANDLE_EXECUTABLE}" STREQUAL "WIX_CANDLE_EXECUTABLE-NOTFOUND") + if(WIX_CANDLE_EXECUTABLE) add_subdirectory( packaging/wix EXCLUDE_FROM_ALL ) ADD_WIX_PACKAGE_TARGET() endif() find_package( PortableApps ) - if ( - NOT "${PORTABLEAPPS_LAUNCHER_GENERATOR_EXECUTABLE}" STREQUAL "PORTABLEAPPS_LAUNCHER_GENERATOR_EXECUTABLE-NOTFOUND" - AND - NOT "${PORTABLEAPPS_INSTALLER_EXECUTABLE}" STREQUAL "PORTABLEAPPS_INSTALLER_EXECUTABLE-NOTFOUND" - ) + if(PORTABLEAPPS_LAUNCHER_GENERATOR_EXECUTABLE AND PORTABLEAPPS_INSTALLER_EXECUTABLE) add_subdirectory( packaging/portableapps EXCLUDE_FROM_ALL ) ADD_PORTABLEAPPS_PACKAGE_TARGET() endif() @@ -3233,10 +3186,10 @@ else () find_program(HARDENING_CHECK_EXECUTABLE hardening-check DOC "Path to the hardening-check utility." ) - if (NOT "${HARDENING_CHECK_EXECUTABLE}" STREQUAL "HARDENING_CHECK_EXECUTABLE-NOTFOUND") + if(HARDENING_CHECK_EXECUTABLE) foreach(_prog ${PROGLIST}) get_target_property(_prog_dir ${_prog} RUNTIME_OUTPUT_DIRECTORY) - if ("${_prog_dir}" STREQUAL "_prog_dir-NOTFOUND") + if(NOT _prog_dir) set(_prog_dir "${CMAKE_BINARY_DIR}/run") endif() set(_prog_paths ${_prog_paths} "${_prog_dir}/${_prog}") @@ -3262,7 +3215,7 @@ CHECKAPI( find_program(SHELLCHECK_EXECUTABLE shellcheck DOC "Path to the shellcheck utility." ) -if (NOT "${SHELLCHECK_EXECUTABLE}" STREQUAL "SHELLCHECK_EXECUTABLE-NOTFOUND") +if(SHELLCHECK_EXECUTABLE) add_custom_target(shellcheck) set_target_properties(shellcheck PROPERTIES FOLDER "Tests") # --external-sources requires 0.4.0 or later. diff --git a/debian/control b/debian/control index ca71ecc7de..12c24b4d91 100644 --- a/debian/control +++ b/debian/control @@ -18,7 +18,7 @@ Build-Depends: lsb-release, libgcrypt-dev, libkrb5-dev, liblua5.2-dev, libsmi2-dev, libmaxminddb-dev, dpkg-dev (>= 1.16.1~), libnl-genl-3-dev [linux-any], libnl-route-3-dev [linux-any], asciidoctor, - cmake (>= 2.8.12), libsbc-dev, libnghttp2-dev, libssh-gcrypt-dev, + cmake (>= 3.5) | cmake3, libsbc-dev, libnghttp2-dev, libssh-gcrypt-dev, liblz4-dev, libsnappy-dev, libspandsp-dev, libxml2-dev Build-Conflicts: libsnmp4.2-dev, libsnmp-dev Vcs-Svn: svn://svn.debian.org/svn/collab-maint/ext-maint/wireshark/trunk diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt index c9aa901420..067bf8bfba 100644 --- a/epan/CMakeLists.txt +++ b/epan/CMakeLists.txt @@ -292,13 +292,6 @@ set_source_files_properties( COMPILE_FLAGS "${WERROR_COMMON_FLAGS}" ) -# Cannot use $<$:$> as that breaks -# with CMake 3.0 (CMake 3.1 is OK) -if(HAVE_LIBLUA) - set(wslua_sources $) -else() - set(wslua_sources) -endif() add_library(epan ${LIBWIRESHARK_FILES} $ @@ -307,7 +300,7 @@ add_library(epan $ $ $ - ${wslua_sources} + $<$:$> ${CMAKE_BINARY_DIR}/image/libwireshark.rc ) diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt index 6448a216d1..756faa6363 100644 --- a/epan/dissectors/CMakeLists.txt +++ b/epan/dissectors/CMakeLists.txt @@ -215,7 +215,7 @@ set_target_properties(dissectors-corba PROPERTIES COMPILE_DEFINITIONS "WS_BUILD_DLL" ) -if(WIN32 AND "${CMAKE_GENERATOR}" STREQUAL "Visual Studio 12 2013 Win64") +if(WIN32 AND CMAKE_GENERATOR STREQUAL "Visual Studio 12 2013 Win64") # CORBA IDL dissectors are triggering a MSVC 2013 x64 /O2 bug leading to a NULL pointer dereference (see bug 12495) target_compile_options(dissectors-corba PRIVATE $<$:/Ox> $<$:/Ox>) endif() diff --git a/packaging/nsis/CMakeLists.txt b/packaging/nsis/CMakeLists.txt index 80317af7e3..99176be78e 100644 --- a/packaging/nsis/CMakeLists.txt +++ b/packaging/nsis/CMakeLists.txt @@ -36,9 +36,9 @@ file(TO_NATIVE_PATH "${CMAKE_SOURCE_DIR}" TOP_SRC_DIR) # STAGING_DIR depends on the build configuration so we pass it # on the command line below. file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/docbook" USER_GUIDE_DIR) -if ("${WIRESHARK_TARGET_PLATFORM}" STREQUAL "win32") +if(WIRESHARK_TARGET_PLATFORM STREQUAL "win32") set(TARGET_MACHINE x86) -elseif ("${WIRESHARK_TARGET_PLATFORM}" STREQUAL "win64") +elseif(WIRESHARK_TARGET_PLATFORM STREQUAL "win64") set(TARGET_MACHINE x64) else() message(FATAL_ERROR "Your mysterious moon-man architecture \"${WIRESHARK_TARGET_PLATFORM}\" frightens and confuses us.") diff --git a/packaging/rpm/wireshark.spec.in b/packaging/rpm/wireshark.spec.in index 69c02dc219..dd975d7820 100644 --- a/packaging/rpm/wireshark.spec.in +++ b/packaging/rpm/wireshark.spec.in @@ -52,7 +52,7 @@ Obsoletes: wireshark-devel BuildRoot: /tmp/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: cmake +BuildRequires: cmake >= 3.5 or cmake3 >= 3.5 BuildRequires: gcc BuildRequires: python BuildRequires: perl diff --git a/packaging/wix/CMakeLists.txt b/packaging/wix/CMakeLists.txt index 8a8cea593f..2b21fdeb32 100644 --- a/packaging/wix/CMakeLists.txt +++ b/packaging/wix/CMakeLists.txt @@ -59,9 +59,9 @@ file(TO_NATIVE_PATH "${CMAKE_SOURCE_DIR}" TOP_SRC_DIR) # STAGING_DIR depends on the build configuration so we pass it # on the command line below. file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/docbook" USER_GUIDE_DIR) -if ("${WIRESHARK_TARGET_PLATFORM}" STREQUAL "win32") +if(WIRESHARK_TARGET_PLATFORM STREQUAL "win32") set(TARGET_MACHINE x86) -elseif ("${WIRESHARK_TARGET_PLATFORM}" STREQUAL "win64") +elseif(WIRESHARK_TARGET_PLATFORM STREQUAL "win64") set(TARGET_MACHINE x64) else() message(FATAL_ERROR "Your mysterious moon-man architecture \"${WIRESHARK_TARGET_PLATFORM}\" frightens and confuses us.") diff --git a/tools/debian-setup.sh b/tools/debian-setup.sh index 8022f3baea..53ae9113e2 100755 --- a/tools/debian-setup.sh +++ b/tools/debian-setup.sh @@ -47,7 +47,6 @@ BASIC_LIST="qttools5-dev \ bison \ flex \ make \ - cmake \ python \ perl \ libgcrypt-dev" @@ -83,6 +82,11 @@ add_package() { eval "${list}=\"\${${list}} \${pkgname}\"" } +# cmake3 3.5.1: Ubuntu 14.04 +# cmake >= 3.5: Debian >= jessie-backports, Ubuntu >= 16.04 +add_package BASIC_LIST cmake3 || +BASIC_LIST="$BASIC_LIST cmake" + # Debian >= wheezy-backports, Ubuntu >= 16.04 add_package ADDITIONAL_LIST libnghttp2-dev || echo "libnghttp2-dev is unavailable" >&2 diff --git a/ui/qt/CMakeLists.txt b/ui/qt/CMakeLists.txt index a052a7dfa9..5b23e8d7a3 100644 --- a/ui/qt/CMakeLists.txt +++ b/ui/qt/CMakeLists.txt @@ -591,22 +591,15 @@ include_directories( SET(CMAKE_AUTOMOC TRUE) -if(CMAKE_VERSION VERSION_LESS "3.0.2") - # AUTOUIC and AUTORCC are not supported in CMAKE 2.8.x - QT5_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS}) - QT5_ADD_RESOURCES(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC}) - QT5_WRAP_UI(WIRESHARK_QT_UI_SRC ${WIRESHARK_QT_UI}) -else() - SET(CMAKE_AUTOUIC TRUE) - SET(CMAKE_AUTORCC TRUE) - - set(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC}) - set(WIRESHARK_QT_UI_SRC ${WIRESHARK_QT_UI}) - - # Add .qrc files to library dependencies for AUTORCC. - set(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC}) - QT5_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS}) -endif() +SET(CMAKE_AUTOUIC TRUE) +SET(CMAKE_AUTORCC TRUE) + +set(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC}) +set(WIRESHARK_QT_UI_SRC ${WIRESHARK_QT_UI}) + +# Add .qrc files to library dependencies for AUTORCC. +set(WIRESHARK_QT_QRC_SRC ${WIRESHARK_QT_QRC}) +QT5_ADD_TRANSLATION(WIRESHARK_QT_QM ${WIRESHARK_QT_TS}) add_custom_target( translations ALL @@ -662,14 +655,9 @@ add_dependencies(qtui translations) set_target_properties(qtui PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}" FOLDER "UI" -) -if(NOT CMAKE_VERSION VERSION_LESS "3.0.2") # Ensure .qm files are generated before autogenerating i18n.qrc - set_target_properties(qtui PROPERTIES - AUTOGEN_TARGET_DEPENDS "${WIRESHARK_QT_QM}" - ) -endif() - + AUTOGEN_TARGET_DEPENDS "${WIRESHARK_QT_QM}" +) if (WIN32) target_link_libraries(qtui "UxTheme.lib") endif() -- cgit v1.2.3