export(): Check targets exist at configure-time (#14608)

Commit 66b290e7 (export(): Process the export() command at generate
time., 2012-10-06 ) refactored export() so that it could evaluate
strings at generate-time. This was intended for evaluating target
properties, but that commit also removed a check for target
existence at configure-time. Restore that check and add a test for
this case.
This commit is contained in:
Stephen Kelly 2013-12-02 17:18:29 +01:00 committed by Brad King
parent f282a0bf83
commit 1cd1430b1f
7 changed files with 21 additions and 0 deletions

View File

@ -135,6 +135,14 @@ bool cmExportCommand
return false;
}
}
else
{
cmOStringStream e;
e << "given target \"" << *currentTarget
<< "\" which is not built by this project.";
this->SetError(e.str().c_str());
return false;
}
}
cmGlobalGenerator *gg = this->Makefile->GetLocalGenerator()

View File

@ -98,6 +98,7 @@ add_RunCMake_test(Syntax)
add_RunCMake_test(add_dependencies)
add_RunCMake_test(build_command)
add_RunCMake_test(export)
add_RunCMake_test(cmake_minimum_required)
add_RunCMake_test(find_package)
add_RunCMake_test(get_filename_component)

View File

@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 2.8.4)
project(${RunCMake_TEST})
include(${RunCMake_TEST}.cmake)

View File

@ -0,0 +1,3 @@
include(RunCMake)
run_cmake(TargetNotFound)

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,4 @@
CMake Error at TargetNotFound.cmake:1 \(export\):
export given target "nonexistenttarget" which is not built by this project.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)

View File

@ -0,0 +1 @@
export(TARGETS nonexistenttarget FILE somefile.cmake)