Skip to content
Snippets Groups Projects
Commit 4c79d6eb authored by Thomas Vierjahn's avatar Thomas Vierjahn
Browse files

Generate VisualStudio 2013 user file per test setting the PATH

#10
parent 181bc5c7
Branches
Tags
2 merge requests!19Release/v17.09.0,!1Feature/01 demonstrate initial ecs
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=@_DLL_PATH_DEBUG@;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerEnvironment>PATH=@_DLL_PATH_RELEASE@;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">
<LocalDebuggerEnvironment>PATH=@_DLL_PATH_RELEASE@;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">
<LocalDebuggerEnvironment>PATH=@_DLL_PATH_RELEASE@;%PATH%</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
...@@ -25,8 +25,20 @@ include(WarningLevels) ...@@ -25,8 +25,20 @@ include(WarningLevels)
set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY USE_FOLDERS ON)
function(CONFIGURE_MSVC_USERFILE TARGET_NAME PATH_TO_ADD)
file(TO_NATIVE_PATH "${PATH_TO_ADD}/Release" _DLL_PATH_RELEASE)
file(TO_NATIVE_PATH "${PATH_TO_ADD}/Debug" _DLL_PATH_DEBUG)
set(SOURCE_USER_FILE
"${CMAKE_SOURCE_DIR}/cmake/VisualStudio2013.vcxproj.user.in")
set(DESTINATION_USER_FILE
"${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.vcxproj.user")
message("DESTINATION_USER_FILE: ${DESTINATION_USER_FILE}")
configure_file(${SOURCE_USER_FILE} ${DESTINATION_USER_FILE} @ONLY)
endfunction()
function(ADD_TEST_CATCH_INTERNAL_ function(ADD_TEST_CATCH_INTERNAL_
NAME SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES) NAME SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES PATH_TO_ADD)
add_executable(${NAME} ${SOURCES} ${HEADERS}) add_executable(${NAME} ${SOURCES} ${HEADERS})
target_include_directories(${NAME} PRIVATE ${INCLUDE_DIRECTORIES}) target_include_directories(${NAME} PRIVATE ${INCLUDE_DIRECTORIES})
target_link_libraries(${NAME} ${LINK_LIBRARIES}) target_link_libraries(${NAME} ${LINK_LIBRARIES})
...@@ -35,6 +47,10 @@ function(ADD_TEST_CATCH_INTERNAL_ ...@@ -35,6 +47,10 @@ function(ADD_TEST_CATCH_INTERNAL_
set_property(TARGET ${NAME} PROPERTY FOLDER "Tests") set_property(TARGET ${NAME} PROPERTY FOLDER "Tests")
source_group("Sources" FILES ${SOURCES} ${HEADERS}) source_group("Sources" FILES ${SOURCES} ${HEADERS})
if(WIN32 AND MSVC)
configure_msvc_userfile(${NAME} ${PATH_TO_ADD})
endif()
endfunction() endfunction()
...@@ -51,7 +67,8 @@ function(ADD_TEST_CATCH) ...@@ -51,7 +67,8 @@ function(ADD_TEST_CATCH)
# parse arguments # parse arguments
set(options ) set(options )
set(oneValueArgs NAME CATCH_MAIN) set(oneValueArgs NAME CATCH_MAIN)
set(multiValueArgs SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES) set(multiValueArgs
SOURCES HEADERS INCLUDE_DIRECTORIES LINK_LIBRARIES PATH_TO_ADD)
cmake_parse_arguments(ADD_TEST_CATCH cmake_parse_arguments(ADD_TEST_CATCH
"${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
...@@ -69,7 +86,9 @@ function(ADD_TEST_CATCH) ...@@ -69,7 +86,9 @@ function(ADD_TEST_CATCH)
"${ADD_TEST_CATCH_SOURCES}" "${ADD_TEST_CATCH_SOURCES}"
"${ADD_TEST_CATCH_HEADERS}" "${ADD_TEST_CATCH_HEADERS}"
"${ADD_TEST_CATCH_INCLUDE_DIRECTORIES}" "${ADD_TEST_CATCH_INCLUDE_DIRECTORIES}"
"${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main") "${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main"
"${ADD_TEST_CATCH_PATH_TO_ADD}"
)
# add test for each test source file # add test for each test source file
foreach(TEST_SOURCE_FILE ${ADD_TEST_CATCH_SOURCES}) foreach(TEST_SOURCE_FILE ${ADD_TEST_CATCH_SOURCES})
...@@ -78,6 +97,8 @@ function(ADD_TEST_CATCH) ...@@ -78,6 +97,8 @@ function(ADD_TEST_CATCH)
"${TEST_SOURCE_FILE}" "${TEST_SOURCE_FILE}"
"" ""
"${ADD_TEST_CATCH_INCLUDE_DIRECTORIES}" "${ADD_TEST_CATCH_INCLUDE_DIRECTORIES}"
"${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main") "${ADD_TEST_CATCH_LINK_LIBRARIES};${ADD_TEST_CATCH_NAME}_catch_main"
"${ADD_TEST_CATCH_PATH_TO_ADD}"
)
endforeach() endforeach()
endfunction() endfunction()
...@@ -28,6 +28,7 @@ add_test_catch(NAME "phoenix-tests" ...@@ -28,6 +28,7 @@ add_test_catch(NAME "phoenix-tests"
CATCH_MAIN src/tests.cpp CATCH_MAIN src/tests.cpp
INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} phoenix INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} phoenix
LINK_LIBRARIES phoenix LINK_LIBRARIES phoenix
PATH_TO_ADD ${PROJECT_BINARY_DIR}/library
) )
add_test_cpplint(NAME "phoenix-tests--cpplint" add_test_cpplint(NAME "phoenix-tests--cpplint"
${PHOENIX_TEST_SOURCES} ${PHOENIX_TEST_SOURCES}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment