Skip to content
Snippets Groups Projects
Commit ddace814 authored by Martin Christoph Hierholzer's avatar Martin Christoph Hierholzer
Browse files

Merge remote-tracking branch 'project-template/master'

parents a75e846c 134a3816
No related branches found
No related tags found
No related merge requests found
......@@ -12,13 +12,18 @@ include(CMakeParseArguments)
# INCLUDE_DIRECTORIES
# ${list_of_include_directories}
# COMPILE_OPTIONS
# ${list_of_compile_options})
# ${list_of_compile_options}
# WORKING_DIRECTORY
# ${ctest_working_directory})
#
# Function registers tests defined as a list of souce files. Test
# defined by file source_name.cc in the SOURCES list is registered under
# the name
# test_namespace.source_name
#
#
# If provided, test executables will use ${ctest_working_directory}
# as the working directory
#
# Provided list of dependent link targets and include directories are
# used as PRIVATE dependencies during compilation of test executable.
#
......@@ -27,7 +32,7 @@ include(CMakeParseArguments)
function(register_tests)
find_package(Boost COMPONENTS unit_test_framework REQUIRED)
list(APPEND single_parmeter_keywords NAMESPACE)
list(APPEND single_parmeter_keywords NAMESPACE WORKING_DIRECTORY)
list(APPEND multi_parmeter_keywords SOURCES
LINK_LIBRARIES
INCLUDE_DIRECTORIES
......@@ -37,7 +42,8 @@ function(register_tests)
register_exe(SOURCES "${arg_SOURCES}"
NAMESPACE "${arg_NAMESPACE}")
NAMESPACE "${arg_NAMESPACE}"
WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}")
get_test_targets(list_of_targets "${arg_SOURCES}")
......@@ -92,7 +98,7 @@ endfunction()
######################################
function(register_exe)
list(APPEND single_value_keywords NAMESPACE)
list(APPEND single_value_keywords NAMESPACE WORKING_DIRECTORY)
list(APPEND multi_value_keywords SOURCES)
cmake_parse_arguments("arg" "" "${single_value_keywords}"
......@@ -105,9 +111,12 @@ function(register_exe)
# COMMAND ${target_name}
# WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tests)
#
add_test(${arg_NAMESPACE}.${target_name}
${target_name}
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tests)
add_test(NAME
${arg_NAMESPACE}.${target_name}
COMMAND
${target_name}
WORKING_DIRECTORY
${arg_WORKING_DIRECTORY})
endforeach()
endfunction()
......
......@@ -44,9 +44,11 @@ endforeach()
string(REPLACE " " ";" LIST "${PROJECT_NAME} ${${PROJECT_NAME}_LIBRARIES}")
foreach(LIBRARY ${LIST})
if(LIBRARY MATCHES "/") # library name contains slashes: link against the a file path name
if(LIBRARY MATCHES "/") # library name contains slashes: link against the a file path name
set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE} ${LIBRARY}")
else() # library name does not contain slashes: link against library with -l option
elseif(LIBRARY MATCHES "^-l") # library name does not contain slashes but already the -l option: directly quote it
set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE} ${LIBRARY}")
else() # link against library with -l option
set(${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE "${${PROJECT_NAME}_LINKER_FLAGS_MAKEFILE} -l${LIBRARY}")
endif()
endforeach()
......
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment