50 lines
1.3 KiB
CMake
50 lines
1.3 KiB
CMake
include_guard(DIRECTORY)
|
|
include(${CMAKE_SOURCE_DIR}/cmake/TernaryOperator.cmake)
|
|
|
|
function(sym_link_dir)
|
|
set(_options)
|
|
set(_one_value_args TARGET_NAME SOURCE DEST COMMENT)
|
|
set(_multi_value_args)
|
|
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
add_custom_command(
|
|
OUTPUT ${_ARGS_DEST}
|
|
COMMAND ln ARGS -sf ${_ARGS_SOURCE} ${_ARGS_DEST}
|
|
)
|
|
set_ternary(_comment _ARGS_COMMENT "${_ARGS_COMMENT}" "linking dir ${_ARGS_SOURCE} -> ${_ARGS_DEST}")
|
|
add_custom_target(
|
|
${_ARGS_TARGET_NAME} ALL
|
|
DEPENDS ${_ARGS_DEST}
|
|
COMMENT "${_comment}"
|
|
)
|
|
endfunction()
|
|
|
|
function(sym_link_file)
|
|
set(_options)
|
|
set(_one_value_args SOURCE DEST INSTALL_DEST)
|
|
set(_multi_value_args)
|
|
cmake_parse_arguments(_ARGS "${_options}" "${_one_value_args}" "${_multi_value_args}" ${ARGN})
|
|
file(
|
|
CREATE_LINK
|
|
${_ARGS_SOURCE}
|
|
${_ARGS_DEST}
|
|
SYMBOLIC
|
|
)
|
|
if (DEFINED _ARGS_INSTALL_DEST)
|
|
install(
|
|
FILES
|
|
${_ARGS_SOURCE}
|
|
DESTINATION ${_ARGS_INSTALL_DEST}
|
|
)
|
|
endif()
|
|
endfunction()
|
|
|
|
function(sym_link_local_lib LIB_NAME)
|
|
set(_lib_file_name "${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}.so")
|
|
file(
|
|
CREATE_LINK
|
|
"${CMAKE_BINARY_DIR}/src/lib_${LIB_NAME}/${_lib_file_name}"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/${_lib_file_name}"
|
|
SYMBOLIC
|
|
)
|
|
endfunction()
|