json-fortran icon indicating copy to clipboard operation
json-fortran copied to clipboard

CMake: use of the include() command with the result of the export() command is deprecated

Open BaconPancakes opened this issue 3 years ago • 2 comments

I am running Cmake 3.16 and trying to use the find_package way linking the json-fortran results in:

[cmake] CMake Error at build/json-fortran/jsonfortran-intel-config.cmake:19 (include):
[cmake]   The file
[cmake] 
[cmake]     my-project-dir/build/json-fortran/jsonfortran-intel-targets.cmake
[cmake] 
[cmake]   was generated by the export() command.  It may not be used as the argument
[cmake]   to the include() command.  Use ALIAS targets instead to refer to targets by
[cmake]   alternative names.

Here's what I'm doing:

add_subdirectory(json-fortran)
list(APPEND CMAKE_PREFIX_PATH  "${CMAKE_CURRENT_SOURCE_DIR}/build/json-fortran")
find_package ( jsonfortran-${CMAKE_Fortran_COMPILER_ID} REQUIRED 8.2.0)
include_directories ( "${jsonfortran_INCLUDE_DIRS}" )

The workaround is to add the following to the CMakeLists.txt

cmake_policy(SET CMP0024 OLD)

referencing https://cmake.org/cmake/help/v3.17/policy/CMP0024.html#policy:CMP0024

However, as it warns, this is a deprecated feature.

BaconPancakes avatar Aug 25 '20 04:08 BaconPancakes

I'm not a CMake guru. Is there something we can do to avoid relying on depreciated features I wonder?

jacobwilliams avatar Sep 13 '20 21:09 jacobwilliams

I also have this issue now, and I tried to add cmake_policy(SET CMP0024 OLD), but it still does not work

daydream123 avatar Feb 06 '24 12:02 daydream123