| |
| cmake_minimum_required(VERSION 3.12) |
| |
| project(target_link_directories LANGUAGES C) |
| |
| add_library(target_link_directories SHARED LinkDirectoriesLib.c) |
| # Test no items |
| target_link_directories(target_link_directories PRIVATE) |
| |
| add_library(target_link_directories_2 SHARED EXCLUDE_FROM_ALL LinkDirectoriesLib.c) |
| target_link_directories(target_link_directories_2 PRIVATE /private/dir INTERFACE /interface/dir) |
| get_target_property(result target_link_directories_2 LINK_DIRECTORIES) |
| if (NOT result STREQUAL "/private/dir") |
| message(SEND_ERROR "${result} target_link_directories not populated the LINK_DIRECTORIES target property") |
| endif() |
| get_target_property(result target_link_directories_2 INTERFACE_LINK_DIRECTORIES) |
| if (NOT result STREQUAL "/interface/dir") |
| message(SEND_ERROR "target_link_directories not populated the INTERFACE_LINK_DIRECTORIES target property of shared library") |
| endif() |
| |
| add_library(target_link_directories_3 STATIC EXCLUDE_FROM_ALL LinkDirectoriesLib.c) |
| target_link_directories(target_link_directories_3 INTERFACE /interface/dir) |
| get_target_property(result target_link_directories_3 INTERFACE_LINK_DIRECTORIES) |
| if (NOT result STREQUAL "/interface/dir") |
| message(SEND_ERROR "target_link_directories not populated the INTERFACE_LINK_DIRECTORIES target property of static library") |
| endif() |
| |
| add_library(target_link_directories_4 SHARED EXCLUDE_FROM_ALL LinkDirectoriesLib.c) |
| target_link_directories(target_link_directories_4 PRIVATE relative/dir) |
| get_target_property(result target_link_directories_4 LINK_DIRECTORIES) |
| if (NOT result STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/relative/dir") |
| message(SEND_ERROR "target_link_directories not populated the LINK_DIRECTORIES with relative path") |
| endif() |
| |
| add_subdirectory(subdir) |
| target_link_directories(target_link_directories_5 PRIVATE relative/dir) |
| get_target_property(result target_link_directories_5 LINK_DIRECTORIES) |
| if (NOT result STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/relative/dir") |
| message(SEND_ERROR "target_link_directories not populated the LINK_DIRECTORIES with relative path") |
| endif() |