smanders / externpro

build external projects with cmake
MIT License
13 stars 12 forks source link

require cmake 3.17 #274

Closed smanders closed 4 years ago

smanders commented 4 years ago

now that externpro builds cmake 3.17 on linux https://github.com/smanders/externpro/issues/268 and installers are available for cmake 3.17.3 with the externpro 20.06.1 release https://github.com/smanders/externpro/releases/tag/20.06.1 -- externpro should require cmake 3.17 to build

smanders commented 4 years ago

completed with commit to dev branch referenced above

smanders commented 4 years ago

there is a new issue on Windows setting the runtime library when

cmake_minimum_required(VERSION 3.17)
smanders commented 4 years ago

background on MSVC runtime library

externpro builds all of it's projects (by default) with static runtime /MT (but can be configured to build with /MD) https://github.com/smanders/externpro/blob/20.06.1/modules/macpro.cmake#L88-L92

  if(MSVC)
    cmake_dependent_option(XP_BUILD_STATIC "build with static runtime (/MT), OFF: dynamic runtime (/MD)" ON
      "XP_STEP STREQUAL build" ON
      )
  endif()

this choice (/MT or /MD) is stored in externpro's share/cmake/xpopts.cmake file https://github.com/smanders/externpro/blob/20.06.1/modules/macpro.cmake#L311-L315

  if(${CMAKE_PROJECT_NAME} STREQUAL externpro)
    configure_file(${MODULES_DIR}/xpopts.cmake.in
      ${STAGE_DIR}/share/cmake/xpopts.cmake
      @ONLY NEWLINE_STYLE LF
      )

https://github.com/smanders/externpro/blob/20.06.1/modules/xpopts.cmake.in

set(XP_BUILD_STATIC_RT @XP_BUILD_STATIC@)

so at cmake-time of externpro, the choice to use /MT or /MD has been stored in a boolean XP_BUILD_STATIC_RT

projects can

so how do all these different projects determine what was chosen for the runtime library?

and xpCommonFlags() determines XP_BUILD_STATIC_RT from the xpopts.cmake file https://github.com/smanders/externpro/blob/20.06.1/modules/xpfunmac.cmake#L1816

  include(${xpThisDir}/xpopts.cmake) # determine XP_BUILD_STATIC_RT

the boolean XP_BUILD_STATIC_RT is used to set the release and debug postfix for targets (executables and libraries) with a call to xpSetPostfix() https://github.com/smanders/externpro/blob/20.06.1/modules/xpfunmac.cmake#L1802-L1810

function(xpSetPostfix)
  if(XP_BUILD_STATIC_RT)
    set(CMAKE_RELEASE_POSTFIX "-s" PARENT_SCOPE)
    set(CMAKE_DEBUG_POSTFIX "-sd" PARENT_SCOPE)
  else()
    set(CMAKE_RELEASE_POSTFIX "" PARENT_SCOPE)
    set(CMAKE_DEBUG_POSTFIX "-d" PARENT_SCOPE)
  endif()
endfunction()

the boolean XP_BUILD_STATIC_RT is also used by MSVC (which has CMAKE_CONFIGURATION_TYPES) to modify the following CMAKE_[C|CXX]_FLAGS_*... https://github.com/smanders/externpro/blob/20.06.1/modules/xpfunmac.cmake#L1829-L1839

    if(CMAKE_CONFIGURATION_TYPES)
      # by default we'll modify the following list of flag variables,
      # but you can call xpModifyRuntime with your own list
      xpModifyRuntime(
        CMAKE_C_FLAGS_RELEASE
        CMAKE_C_FLAGS_DEBUG
        CMAKE_CXX_FLAGS_RELEASE
        CMAKE_CXX_FLAGS_DEBUG
        # NOTE: these are the only flags we modify in common (including externpro-built projects), for now
        )
    endif()

and you can see in the implementation of xpModifyRuntime() that if(XP_BUILD_STATIC_RT) that any /MD is replaced with /MT (/MD is the default runtime library set by cmake -- so we change the default here) https://github.com/smanders/externpro/blob/20.06.1/modules/xpfunmac.cmake#L1779-L1800

function(xpModifyRuntime)
  if(XP_BUILD_STATIC_RT)
    set(from "/MD")
    set(to "/MT")
  else()
    set(from "/MT")
    set(to "/MD")
  endif()
  foreach(flagVar ${ARGV})
    if(DEFINED ${flagVar})
      if(${flagVar} MATCHES "${from}")
        string(REGEX REPLACE "${from}" "${to}" flagTmp "${${flagVar}}")
        if(${flagVar} MATCHES ".*CXX_FLAGS.*")
          set(cType "C++ ")
        elseif(${flagVar} MATCHES ".*C_FLAGS.*")
          set(cType "C ")
        endif()
        set(${flagVar} ${flagTmp} CACHE STRING "Flags used by the ${cType}compiler." FORCE)
      endif()
    endif()
  endforeach()
endfunction()

and this has been the way to change or set the runtime library for as long as we've been using cmake: modify the CMAKE_[C|CXX]_FLAGS_* to have either /MT or /MD

smanders commented 4 years ago

difference between 3.12 and 3.17

cmake 3.17.3 is installed on a Windows system

3.12

when a project requires an older version of cmake (3.12 for our purposes here)

cmake_minimum_required(VERSION 3.12)

after running cmake, we look for the compiler flags in the cmake cache

$ grep CMAKE_CXX_FLAGS_RELEASE CMakeCache.txt
CMAKE_CXX_FLAGS_RELEASE:STRING=/MT /O2 /Ob2 /DNDEBUG
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1

and we see that /MT is present, and we examine a generated Visual Studio project file

$ grep RuntimeLibrary nitf/nitf.vcxproj
      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

and we see that MultiThreaded or /MT is set

3.17

when a project requires a newer version of cmake (3.17 for our purposes here)

cmake_minimum_required(VERSION 3.17)

after running cmake, we look for the compiler flags in the cmake cache

$ grep CMAKE_CXX_FLAGS_RELEASE CMakeCache.txt
CMAKE_CXX_FLAGS_RELEASE:STRING=/MT /O2 /Ob2 /DNDEBUG
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1

and we see that /MT is still present, but then we examine a generated Visual Studio project file

$ grep RuntimeLibrary nitf/nitf.vcxproj
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

and we see that MulitThreadedDLL or /MD is being used

edit: when cmake is run from a clean out-of-source build directory, it appears that the CMAKE_CXX_FLAGS aren't modified

$ grep CMAKE_CXX_FLAGS_RELEASE CMakeCache.txt
CMAKE_CXX_FLAGS_RELEASE:STRING=/O2 /Ob2 /DNDEBUG
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1

Conclusion

newer cmake releases (but only when a project sets the minimum required to the new version) are no longer using CMAKE_[C|CXX]_FLAGS_* to set the MSVC runtime library

smanders commented 4 years ago

it appears that cmake 3.15 introduced CMAKE_MSVC_RUNTIME_LIBRARY and MSVC_RUNTIME_LIBRARY

cmake 3.15 release notes https://cmake.org/cmake/help/v3.15/release/3.15.html#variables

The CMAKE_MSVC_RUNTIME_LIBRARY variable and MSVC_RUNTIME_LIBRARY target property were introduced to select the runtime library used by compilers targeting the MSVC ABI. See policy CMP0091.

this policy has the details... https://cmake.org/cmake/help/v3.15/policy/CMP0091.html

In CMake 3.14 and below, MSVC runtime library selection flags are added to the default CMAKE_<LANG>_FLAGS_<CONFIG> cache entries by CMake automatically. This allows users to edit their cache entries to adjust the flags. However, the presence of such default flags is problematic for projects that want to choose a different runtime library programmatically. In particular, it requires string editing of the CMAKE_<LANG>_FLAGS_<CONFIG> variables with knowledge of the CMake builtin defaults so they can be replaced.

CMake 3.15 and above prefer to leave the MSVC runtime library selection flags out of the default CMAKE_<LANG>_FLAGS_<CONFIG> values and instead offer a first-class abstraction. The CMAKE_MSVC_RUNTIME_LIBRARY variable and MSVC_RUNTIME_LIBRARY target property may be set to select the MSVC runtime library. If they are not set then CMake uses the default value MultiThreaded$<$<CONFIG:Debug>:Debug>DLL which is equivalent to the original flags.

smanders commented 4 years ago

so we could use cmake_policy() to set it to OLD and

place MSVC runtime library flags in the default CMAKE_<LANG>_FLAGS_<CONFIG> cache entries and ignore the CMAKE_MSVC_RUNTIME_LIBRARY abstraction

but at some point the OLD behavior (deprecated by definition) may be removed in a future version of CMake

so it really would be best to modify the externpro cmake to support the NEW behavior and use CMAKE_MSVC_RUNTIME_LIBRARY and/or MSVC_RUNTIME_LIBRARY -- and so I've reopened this issue to address this in externpro

stackoverflow discussion https://stackoverflow.com/questions/14172856/compile-with-mt-instead-of-md-using-cmake

smanders commented 4 years ago

several projects built via externpro report cmake warnings when built with cmake 3.17

activemqcpp ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (apr) does not match the name of the calling package (usexp-APR). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-apr-config.cmake:27 (find_package_handle_standard_args) CMakeLists.txt:9 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (openssl) does not match the name of the calling package (usexp-OpenSSL). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-openssl-config.cmake:27 (find_package_handle_standard_args) CMakeLists.txt:14 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/CheckIncludeFile.cmake:80 (message): Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. Run "cmake --help-policy CMP0075" for policy details. Use the cmake_policy command to set the policy and suppress this warning. CMAKE_REQUIRED_LIBRARIES is set to: pthread For compatibility with CMake 3.11 and below this check is ignoring it. Call Stack (most recent call first): /usr/share/cmake-3.17/Modules/CheckTypeSize.cmake:232 (check_include_file) configure.cmake:108 (check_type_size) CMakeLists.txt:19 (include) This warning is for project developers. Use -Wno-dev to suppress it. ```
cmakexp ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (openssl) does not match the name of the calling package (usexp-OpenSSL). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-openssl-config.cmake:27 (find_package_handle_standard_args) Utilities/cmcurl/CMakeLists.txt:453 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (openssl) does not match the name of the calling package (usexp-OpenSSL). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-openssl-config.cmake:27 (find_package_handle_standard_args) Utilities/cmlibarchive/CMakeLists.txt:550 (FIND_PACKAGE) This warning is for project developers. Use -Wno-dev to suppress it. ```
curl ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (cares) does not match the name of the calling package (usexp-CARES). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-cares-config.cmake:15 (find_package_handle_standard_args) CMakeLists.txt:128 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (openssl) does not match the name of the calling package (usexp-OpenSSL). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-openssl-config.cmake:27 (find_package_handle_standard_args) CMakeLists.txt:357 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (zlib) does not match the name of the calling package (usexp-ZLIB). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-zlib-config.cmake:15 (find_package_handle_standard_args) CMakeLists.txt:536 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (libssh2) does not match the name of the calling package (usexp-LibSSH2). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-libssh2-config.cmake:26 (find_package_handle_standard_args) CMakeLists.txt:587 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. ```
eigen ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (CHOLMOD) does not match the name of the calling package (Cholmod). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindCholmod.cmake:86 (find_package_handle_standard_args) test/CMakeLists.txt:33 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find CHOLMOD (missing: CHOLMOD_INCLUDES CHOLMOD_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (UMFPACK) does not match the name of the calling package (Umfpack). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindUmfpack.cmake:50 (find_package_handle_standard_args) test/CMakeLists.txt:44 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find UMFPACK (missing: UMFPACK_INCLUDES UMFPACK_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (SUPERLU) does not match the name of the calling package (SuperLU). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindSuperLU.cmake:23 (find_package_handle_standard_args) test/CMakeLists.txt:55 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find SUPERLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (PASTIX) does not match the name of the calling package (Pastix). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindPastix.cmake:22 (find_package_handle_standard_args) test/CMakeLists.txt:67 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find PASTIX (missing: PASTIX_INCLUDES PASTIX_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (SCOTCH) does not match the name of the calling package (Scotch). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindScotch.cmake:21 (find_package_handle_standard_args) test/CMakeLists.txt:68 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find SCOTCH (missing: SCOTCH_INCLUDES SCOTCH_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (METIS) does not match the name of the calling package (Metis). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindMetis.cmake:56 (find_package_handle_standard_args) test/CMakeLists.txt:69 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find METIS (missing: METIS_INCLUDES METIS_LIBRARIES) -- Could NOT find SPQR (missing: SPQR_INCLUDES SPQR_LIBRARIES) qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory -- Found unsuitable Qt version "" from NOTFOUND -- The Fortran compiler identification is unknown CMake Warning at blas/CMakeLists.txt:32 (message): No fortran compiler has been detected, the blas build will be incomplete. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (GOOGLEHASH) does not match the name of the calling package (GoogleHash). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindGoogleHash.cmake:21 (find_package_handle_standard_args) unsupported/test/CMakeLists.txt:8 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find GOOGLEHASH (missing: GOOGLEHASH_INCLUDES GOOGLEHASH_COMPILE) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (ADOLC) does not match the name of the calling package (Adolc). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindAdolc.cmake:17 (find_package_handle_standard_args) unsupported/test/CMakeLists.txt:17 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find ADOLC (missing: ADOLC_INCLUDES ADOLC_LIBRARIES) -- Could NOT find MPFR (missing: MPFR_INCLUDES MPFR_LIBRARIES MPFR_VERSION_OK) (Required is at least version "2.3.0") -- Found GMP: /usr/include/x86_64-linux-gnu -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- Could NOT find FFTW (missing: FFTW_INCLUDES FFTW_LIBRARIES) -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so -- Could NOT find GLUT (missing: GLUT_glut_LIBRARY GLUT_INCLUDE_DIR) qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory -- Found unsuitable Qt version "" from NOTFOUND -- Qt4 not found, so disabling the mandelbrot and opengl demos CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (CHOLMOD) does not match the name of the calling package (Cholmod). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindCholmod.cmake:86 (find_package_handle_standard_args) bench/spbench/CMakeLists.txt:16 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find CHOLMOD (missing: CHOLMOD_INCLUDES CHOLMOD_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (UMFPACK) does not match the name of the calling package (Umfpack). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindUmfpack.cmake:50 (find_package_handle_standard_args) bench/spbench/CMakeLists.txt:24 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find UMFPACK (missing: UMFPACK_INCLUDES UMFPACK_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (SUPERLU) does not match the name of the calling package (SuperLU). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindSuperLU.cmake:23 (find_package_handle_standard_args) bench/spbench/CMakeLists.txt:32 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find SUPERLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (PASTIX) does not match the name of the calling package (Pastix). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindPastix.cmake:22 (find_package_handle_standard_args) bench/spbench/CMakeLists.txt:41 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find PASTIX (missing: PASTIX_INCLUDES PASTIX_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (SCOTCH) does not match the name of the calling package (Scotch). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindScotch.cmake:21 (find_package_handle_standard_args) bench/spbench/CMakeLists.txt:42 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find SCOTCH (missing: SCOTCH_INCLUDES SCOTCH_LIBRARIES) CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (METIS) does not match the name of the calling package (Metis). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindMetis.cmake:56 (find_package_handle_standard_args) bench/spbench/CMakeLists.txt:43 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. ```
fecpp ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (bzip2) does not match the name of the calling package (usexp-bzip2). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-bzip2-config.cmake:15 (find_package_handle_standard_args) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-boost-config.cmake:51 (xpFindPkg) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) test/CMakeLists.txt:5 (xpFindPkg) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (zlib) does not match the name of the calling package (usexp-zlib). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-zlib-config.cmake:15 (find_package_handle_standard_args) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-boost-config.cmake:51 (xpFindPkg) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) test/CMakeLists.txt:5 (xpFindPkg) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (boost) does not match the name of the calling package (usexp-boost). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-boost-config.cmake:172 (find_package_handle_standard_args) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) test/CMakeLists.txt:5 (xpFindPkg) This warning is for project developers. Use -Wno-dev to suppress it. ```
glew ``` CMake Warning (dev) in CMakeLists.txt: No project() command is present. The top-level CMakeLists.txt file must contain a literal, direct call to the project() command. Add a line of code such as project(ProjectName) near the top of the file, but after cmake_minimum_required(). CMake is pretending there is a "project(Project)" command on the first line. This warning is for project developers. Use -Wno-dev to suppress it. ```
libgit2 ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (openssl) does not match the name of the calling package (usexp-OpenSSL). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-openssl-config.cmake:27 (find_package_handle_standard_args) src/CMakeLists.txt:155 (FIND_PACKAGE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (zlib) does not match the name of the calling package (usexp-ZLIB). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-zlib-config.cmake:15 (find_package_handle_standard_args) src/CMakeLists.txt:346 (FIND_PACKAGE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (libssh2) does not match the name of the calling package (usexp-libssh2). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-libssh2-config.cmake:26 (find_package_handle_standard_args) src/CMakeLists.txt:375 (FIND_PACKAGE) This warning is for project developers. Use -Wno-dev to suppress it. ```
libssh2 ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (openssl) does not match the name of the calling package (usexp-OpenSSL). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-openssl-config.cmake:27 (find_package_handle_standard_args) src/CMakeLists.txt:67 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (zlib) does not match the name of the calling package (usexp-ZLIB). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-zlib-config.cmake:15 (find_package_handle_standard_args) src/CMakeLists.txt:254 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/BundleUtilities.cmake:233 (message): Policy CMP0080 is not set: BundleUtilities cannot be included at configure time. Run "cmake --help-policy CMP0080" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Call Stack (most recent call first): /usr/share/cmake-3.17/Modules/BundleUtilities.cmake:242 (_warn_cmp0080) tests/CMakeLists.txt:39 (include) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (openssl) does not match the name of the calling package (usexp-OpenSSL). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-openssl-config.cmake:27 (find_package_handle_standard_args) tests/CMakeLists.txt:76 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. ```
libstrophe ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (openssl) does not match the name of the calling package (usexp-OpenSSL). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-openssl-config.cmake:27 (find_package_handle_standard_args) CMakeLists.txt:18 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (expat) does not match the name of the calling package (usexp-EXPAT). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-expat-config.cmake:15 (find_package_handle_standard_args) CMakeLists.txt:29 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. ```
llvm (llvmformat) ``` CMake Deprecation Warning at CMakeLists.txt:20 (cmake_policy): The OLD behavior for policy CMP0051 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/CheckIncludeFile.cmake:80 (message): Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. Run "cmake --help-policy CMP0075" for policy details. Use the cmake_policy command to set the policy and suppress this warning. CMAKE_REQUIRED_LIBRARIES is set to: m For compatibility with CMake 3.11 and below this check is ignoring it. Call Stack (most recent call first): cmake/config-ix.cmake:46 (check_include_file) CMakeLists.txt:461 (include) This warning is for project developers. Use -Wno-dev to suppress it. ```
lua ``` CMake Warning (dev) at CMakeLists.txt:21 (set): implicitly converting 'NUMBER' to 'STRING' type. This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (readline) does not match the name of the calling package (Readline). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindReadline.cmake:25 (find_package_handle_standard_args) CMakeLists.txt:72 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Could NOT find readline (missing: READLINE_LIBRARY READLINE_INCLUDE_DIR) ```
protobuf ``` CMake Warning (dev) in CMakeLists.txt: No project() command is present. The top-level CMakeLists.txt file must contain a literal, direct call to the project() command. Add a line of code such as project(ProjectName) near the top of the file, but after cmake_minimum_required(). CMake is pretending there is a "project(Project)" command on the first line. This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (zlib) does not match the name of the calling package (usexp-ZLIB). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-zlib-config.cmake:15 (find_package_handle_standard_args) cmake/CMakeLists.txt:56 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/CMakeLists.txt:131 (message): version passed in (3.0.0-beta-1) doesn't match internal version (3.0.0) This warning is for project developers. Use -Wno-dev to suppress it. ```
wxinclude ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (bzip2) does not match the name of the calling package (usexp-bzip2). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-bzip2-config.cmake:15 (find_package_handle_standard_args) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-boost-config.cmake:51 (xpFindPkg) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) CMakeLists.txt:5 (xpFindPkg) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (zlib) does not match the name of the calling package (usexp-zlib). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-zlib-config.cmake:15 (find_package_handle_standard_args) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-boost-config.cmake:51 (xpFindPkg) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) CMakeLists.txt:5 (xpFindPkg) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (boost) does not match the name of the calling package (usexp-boost). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-boost-config.cmake:172 (find_package_handle_standard_args) /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/xpfunmac.cmake:1173 (find_package) CMakeLists.txt:5 (xpFindPkg) This warning is for project developers. Use -Wno-dev to suppress it. ```
wxx ``` CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to `find_package_handle_standard_args` (wxwidgets) does not match the name of the calling package (usexp-wxwidgets). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): /home/smanders/src/externpro/_bld/externpro_20.06.1-1-g2ca9890-p-gcc750-64/share/cmake/usexp-wxwidgets-config.cmake:203 (find_package_handle_standard_args) CMakeLists.txt:8 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. ```
yasm ``` CMake Warning (dev) in libyasm/CMakeLists.txt: A logical block opening on the line /home/smanders/src/externpro/_bld/xpbase/Source/yasm/libyasm/CMakeLists.txt:46 (IF) closes on the line /home/smanders/src/externpro/_bld/xpbase/Source/yasm/libyasm/CMakeLists.txt:85 (ENDIF) with mis-matching arguments. This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:71 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "re2c". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/arch/lc3b/CMakeLists.txt:1 (YASM_RE2C) modules/arch/CMakeLists.txt:1 (INCLUDE) modules/CMakeLists.txt:3 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:61 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genperf". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/arch/x86/CMakeLists.txt:13 (YASM_GENPERF) modules/arch/CMakeLists.txt:2 (INCLUDE) modules/CMakeLists.txt:3 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:61 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genperf". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/arch/x86/CMakeLists.txt:18 (YASM_GENPERF) modules/arch/CMakeLists.txt:2 (INCLUDE) modules/CMakeLists.txt:3 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:61 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genperf". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/arch/x86/CMakeLists.txt:23 (YASM_GENPERF) modules/arch/CMakeLists.txt:2 (INCLUDE) modules/CMakeLists.txt:3 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:61 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genperf". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/arch/x86/CMakeLists.txt:28 (YASM_GENPERF) modules/arch/CMakeLists.txt:2 (INCLUDE) modules/CMakeLists.txt:3 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:71 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "re2c". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/parsers/gas/CMakeLists.txt:1 (YASM_RE2C) modules/parsers/CMakeLists.txt:1 (INCLUDE) modules/CMakeLists.txt:5 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:81 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genmacro". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/parsers/nasm/CMakeLists.txt:1 (YASM_GENMACRO) modules/parsers/CMakeLists.txt:2 (INCLUDE) modules/CMakeLists.txt:5 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:71 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "re2c". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/parsers/nasm/CMakeLists.txt:11 (YASM_RE2C) modules/parsers/CMakeLists.txt:2 (INCLUDE) modules/CMakeLists.txt:5 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at modules/preprocs/nasm/CMakeLists.txt:2 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genversion". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/preprocs/CMakeLists.txt:1 (INCLUDE) modules/CMakeLists.txt:6 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:81 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genmacro". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/preprocs/nasm/CMakeLists.txt:9 (YASM_GENMACRO) modules/preprocs/CMakeLists.txt:1 (INCLUDE) modules/CMakeLists.txt:6 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:81 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genmacro". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/objfmts/coff/CMakeLists.txt:1 (YASM_GENMACRO) modules/objfmts/CMakeLists.txt:4 (INCLUDE) modules/CMakeLists.txt:8 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at cmake/modules/YasmMacros.cmake:81 (get_target_property): Policy CMP0026 is not set: Disallow use of the LOCATION target property. Run "cmake --help-policy CMP0026" for policy details. Use the cmake_policy command to set the policy and suppress this warning. The LOCATION property should not be read from target "genmacro". Use the target name directly with add_custom_command, or use the generator expression $, as appropriate. Call Stack (most recent call first): modules/objfmts/coff/CMakeLists.txt:7 (YASM_GENMACRO) modules/objfmts/CMakeLists.txt:4 (INCLUDE) modules/CMakeLists.txt:8 (INCLUDE) This warning is for project developers. Use -Wno-dev to suppress it. -- Standard modules: arch_lc3b;arch_x86;listfmt_nasm;parser_gas;parser_nasm;preproc_nasm;preproc_raw;preproc_cpp;preproc_gas;dbgfmt_cv8;dbgfmt_dwarf2;dbgfmt_null;dbgfmt_stabs;objfmt_dbg;objfmt_bin;objfmt_elf;objfmt_elf32;objfmt_elf64;objfmt_elfx32;objfmt_coff;objfmt_win32;objfmt_win64;objfmt_macho;objfmt_macho32;objfmt_macho64;objfmt_rdf;objfmt_xdf -- Generating standard plugin initialization file CMake Warning (dev) in frontends/tasm/CMakeLists.txt: A logical block opening on the line /home/smanders/src/externpro/_bld/xpbase/Source/yasm/frontends/tasm/CMakeLists.txt:39 (IF) closes on the line /home/smanders/src/externpro/_bld/xpbase/Source/yasm/frontends/tasm/CMakeLists.txt:41 (ENDIF) with mis-matching arguments. This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) in frontends/vsyasm/CMakeLists.txt: A logical block opening on the line /home/smanders/src/externpro/_bld/xpbase/Source/yasm/frontends/vsyasm/CMakeLists.txt:39 (IF) closes on the line /home/smanders/src/externpro/_bld/xpbase/Source/yasm/frontends/vsyasm/CMakeLists.txt:41 (ENDIF) with mis-matching arguments. This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) in CMakeLists.txt: A logical block opening on the line /home/smanders/src/externpro/_bld/xpbase/Source/yasm/CMakeLists.txt:51 (IF) closes on the line /home/smanders/src/externpro/_bld/xpbase/Source/yasm/CMakeLists.txt:61 (ENDIF) with mis-matching arguments. This warning is for project developers. Use -Wno-dev to suppress it. ```
smanders commented 4 years ago

I'm not going to address the llvm cmake warnings, since 1. we're on an older version and there's a chance these are fixed a newer version that hopefully we move to sometime soon, 2. we don't currently patch llvm, or clang, or clang-format, or clang-tidy, or clang-tools-extra -- and I'd rather keep it that way

smanders commented 4 years ago

cmake 3.17 Debug emits cmake warnings

for example, a Debug build of palam

$ cmake -DCMAKE_BUILD_TYPE=Debug /path/to/src
...
CMake Warning (dev) at /usr/share/cmake-3.17/Modules/CMakeDependentOption.cmake:39 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'XP_USE_ASAN'.
Call Stack (most recent call first):
  /opt/extern/externpro-20.06.1-gcc750-64-Linux/share/cmake/xpfunmac.cmake:1999 (cmake_dependent_option)
  /opt/extern/externpro-20.06.1-gcc750-64-Linux/share/cmake/xpfunmac.cmake:2067 (xpSetFlagsGccDebug)
  /opt/extern/externpro-20.06.1-gcc750-64-Linux/share/cmake/xpfunmac.cmake:2121 (xpSetFlagsGcc)
  CMakeLists.txt:32 (xpSetFlags)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at /usr/share/cmake-3.17/Modules/CMakeDependentOption.cmake:39 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'XP_COVERAGE'.
Call Stack (most recent call first):
  /opt/extern/externpro-20.06.1-gcc750-64-Linux/share/cmake/xpfunmac.cmake:2005 (cmake_dependent_option)
  /opt/extern/externpro-20.06.1-gcc750-64-Linux/share/cmake/xpfunmac.cmake:2067 (xpSetFlagsGccDebug)
  /opt/extern/externpro-20.06.1-gcc750-64-Linux/share/cmake/xpfunmac.cmake:2121 (xpSetFlagsGcc)
  CMakeLists.txt:32 (xpSetFlags)
This warning is for project developers.  Use -Wno-dev to suppress it.

same kind of cmake warning fixed previously https://github.com/smanders/externpro/commit/11274b9ec0e1db943dae0a4408484184631be91d

smanders commented 4 years ago

cmake-gui 3.17 on Windows has changed... the choice of generators no longer includes the platform

cmake-gui 3.12.0

cmake-gui 3.17.3

smanders commented 4 years ago

cmake 3.17 command line still lets you specify the generator and platform together

cmake -G "Visual Studio 15 2017 Win64"

see Visual Studio 15 2017 "For compatibility with CMake versions prior to 3.1" https://cmake.org/cmake/help/v3.17/generator/Visual%20Studio%2015%202017.html#platform-selection

however, Visual Studio 16 2019 no longer provides this compatibility and the platform is a separate argument

cmake -G "Visual Studio 16 2019" -A x64

https://cmake.org/cmake/help/v3.17/generator/Visual%20Studio%2016%202019.html#platform-selection

so the cmake-gui change (above) is moving us in the direction of specifying the platform (-A) separate from the generator (-G)

see cmake options https://cmake.org/cmake/help/v3.17/manual/cmake.1.html#options

smanders commented 4 years ago

the changes above break projects built by externpro when cmake-gui is used to choose the generator and platform -- the optional platform isn't relayed on to the projects built by externpro, so they default to Win32

on Windows

set(XP_CONFIGURE_GEN ${CMAKE_GENERATOR})

https://github.com/smanders/externpro/blob/20.06.1/modules/xpfunmac.cmake#L363 and XP_CONFIGURE_GEN is used to set the CMAKE_GENERATOR in the ExternalProject_Add() command

    ExternalProject_Add(${XP_TARGET} DEPENDS ${XP_DEPS} ${ADDITIONAL_DEPENDS}
      DOWNLOAD_COMMAND "" DOWNLOAD_DIR ${NULL_DIR}
      SOURCE_DIR ${SOURCE_DIR}
      CMAKE_GENERATOR ${XP_CONFIGURE_GEN} CMAKE_ARGS ${XP_CONFIGURE_CMD}
      BUILD_COMMAND ${XP_BUILD_CMD}
      INSTALL_COMMAND ${XP_INSTALL_CMD} INSTALL_DIR ${NULL_DIR}
      )

https://github.com/smanders/externpro/blob/20.06.1/modules/xpfunmac.cmake#L436-L442

so this all works fine if CMAKE_GENERATOR includes the platform (Win64 for x64), but when the generator is separate from the platform, the platform defaults to Win32

the solution is that ExternalProject_Add() has the ability to specify CMAKE_GENERATOR_PLATFORM -- see "Configure Step Options" https://cmake.org/cmake/help/v3.17/module/ExternalProject.html

smanders commented 4 years ago

completed with commits to dev branch referenced above