#edit
Problem rozwiązany - do tej pory wszystkie biblioteki linkowane wrac z projektem podrzędnym przechodziły też na UnitTesty. Tym razem jednak musiałem dodatkowo dodać Corrade::Utility.
Cześć,
próbuję do UnitTestów napisanych za pomocą biblioteki Corrade dołączyć plik resource, który też jest tworzony za pomocą tej biblioteki.
Niestety przy budowaniu otrzymuję błąd:
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: The "CustomBuild" task failed unexpectedly.
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: System.NotSupportedException: The given path's format is not supported.
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath)
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.CPPTasks.CustomBuild.GetInputs(ITaskItem item)
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.CPPTasks.CustomBuild.BuildExecutionGraph()
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.CPPTasks.CustomBuild.AssignOutOfDateSources(ITaskItem[] sources)
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.CPPTasks.TrackedVCToolTask.ComputeOutOfDateSources()
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.CPPTasks.TrackedVCToolTask.SkipTaskExecution()
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.Utilities.ToolTask.Execute()
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.CPPTasks.TrackedVCToolTask.Execute()
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
CMakeList:
cmake_minimum_required(VERSION 3.8.0)
PROJECT (unitTests)
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
FILE(GLOB __unitTest_HDRSRC
./cpp/*.h
./cpp/*.hpp
./cpp/*.cpp
)
FILE(GLOB __unitTestTests_HDRSRC
./cpp/Test/*.h
./cpp/Test/*.hpp
./cpp/Test/*.cpp
)
FILE(GLOB __resources_RC
./resources/*.rcs
)
# (...) wycięte
CORRADE_ADD_RESOURCE(__unitTestsResources_RCS ${__resources_RC})
SET(ALL_PROJECT_SOURCES
${__unitTest_HDRSRC}
${__unitTestTests_HDRSRC}
${__unitTestsResources_RCS}
# (...) wycięte
)
SOURCE_GROUP ("Source Files" FILES ${__unitTest_HDRSRC})
SOURCE_GROUP ("Source Files\\Tests" FILES ${__unitTestTests_HDRSRC})
SOURCE_GROUP ("Resources" FILES ${__unitTestsResources_RCS})
SET_DIRECTORY_PROPERTIES(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON)
ENABLE_TESTING()
# Only one project for all tests
CORRADE_ADD_TEST(
${PROJECT_NAME} ${ALL_PROJECT_SOURCES}
LIBRARIES
# (...) wycięte
)
FIND_PACKAGE(Corrade REQUIRED TestSuite)
# (...) wycięte
INCLUDE_DIRECTORIES(
${SYSTEM_INCLUDE}
${WORKSPACE_DIR}
${CORRADE_INCLUDE_DIR}
# (...) wycięte
)
Drzewo katalogów w projekcie UnitTests:
./UnitTests
CMakeLists.txt
./cpp
<.cpps>
<.hpps>
<.hs>
./resources
./images
<.dds>
images.rcs
Zawartość images.rcs:
group=images
[file]
filename=images/bitmap.dds
alias=bitmap.dds
[file]
filename=images/compressedBitmap.dds
alias=compressedBitmap.dds
Kod nie zmienia się w ogóle - cały czas ten sam dla bez i z resources.
Korzystam z tego tutoriala: http://doc.magnum.graphics/corrade/resource-management.html
Pomocy :(