
An new environment variable 'CMAKE_INSTALL_MODE' is introduced, which can be used to ask CMake to create symbolic links instead of copying files during a file(INSTALL ...). The operation is at the file level only, directory trees are still created using actual directories, not links. Signed-off-by: Felix Lelchuk <felix.lelchuk@gmx.de>
39 lines
1.1 KiB
CMake
39 lines
1.1 KiB
CMake
message("Testing...")
|
|
message("FILE_PATH = ${FILE_PATH}")
|
|
message("EXPECT_SYMLINK = ${EXPECT_SYMLINK}")
|
|
message("EXPECT_ABSOLUTE = ${EXPECT_ABSOLUTE}")
|
|
|
|
if(NOT DEFINED FILE_PATH)
|
|
message(FATAL_ERROR "FILE_PATH variable must be defined")
|
|
endif()
|
|
|
|
if(NOT EXISTS "${FILE_PATH}")
|
|
message(FATAL_ERROR "File ${FILE_PATH} does not exist")
|
|
endif()
|
|
|
|
if(NOT DEFINED EXPECT_SYMLINK)
|
|
message(FATAL_ERROR "EXPECT_SYMLINK must be defined")
|
|
endif()
|
|
|
|
if(EXPECT_SYMLINK)
|
|
if(NOT DEFINED EXPECT_ABSOLUTE)
|
|
message(FATAL_ERROR "EXPECT_ABSOLUTE variable must be defined")
|
|
endif()
|
|
|
|
if(NOT IS_SYMLINK "${FILE_PATH}")
|
|
message(FATAL_ERROR "${FILE_PATH} must be a symlink")
|
|
endif()
|
|
|
|
file(READ_SYMLINK "${FILE_PATH}" TARGET_PATH)
|
|
|
|
if(EXPECT_ABSOLUTE AND NOT IS_ABSOLUTE "${TARGET_PATH}")
|
|
message(FATAL_ERROR "${FILE_PATH} must be an absolute symlink")
|
|
elseif(NOT EXPECT_ABSOLUTE AND IS_ABSOLUTE "${TARGET_PATH}")
|
|
message(FATAL_ERROR "${FILE_PATH} must be a relative symlink")
|
|
endif()
|
|
else()
|
|
if(IS_SYMLINK "${FILE_PATH}")
|
|
message(FATAL_ERROR "${FILE_PATH} must NOT be a symlink")
|
|
endif()
|
|
endif()
|