Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ################################################################################
- # Add link directory
- # target_link_directories(<target> <PRIVATE|PUBLIC|INTERFACE> [CONDITION condition] <item1> [<PRIVATE|PUBLIC|INTERFACE> [CONDITION condition] <item2>...]...)
- ################################################################################
- cmake_policy(PUSH)
- cmake_policy(SET CMP0054 NEW)
- cmake_policy(SET CMP0057 NEW)
- function(target_link_directories TARGET TYPE)
- if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
- set(QUOTE "")
- else()
- set(QUOTE "\"")
- endif()
- set(TYPES "PRIVATE" "PUBLIC" "INTERFACE")
- unset(LINK_DIRS)
- unset(ARG_ROLE)
- set(CONDITION "1")
- foreach(ARG ${ARGN})
- if("${ARG}" STREQUAL "CONDITION")
- set(ARG_ROLE "CONDITION_KEYWORD")
- elseif("${ARG_ROLE}" STREQUAL "CONDITION_KEYWORD")
- set(ARG_ROLE "CONDITION")
- elseif("${ARG}" IN_LIST TYPES)
- set(ARG_ROLE "TYPE")
- else()
- set(ARG_ROLE "PATH")
- endif()
- if("${ARG_ROLE}" STREQUAL "CONDITION")
- set(CONDITION "${ARG}")
- elseif("${ARG_ROLE}" STREQUAL "TYPE")
- set(TYPE "${ARG}")
- elseif("${ARG_ROLE}" STREQUAL "PATH")
- list(APPEND LINK_DIRS ${TYPE} "$<${CONDITION}:${CMAKE_LIBRARY_PATH_FLAG}${QUOTE}${ARG}${QUOTE}>")
- endif()
- endforeach()
- target_link_libraries(${TARGET} ${LINK_DIRS})
- endfunction()
- cmake_policy(POP)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement