add_custom_command: Fix dependency on macOS framework target
When the `DEPENDS` option names a logical target name, convert to the "real" path of that target rather than any of the symlink-provided alternative file names. This makes the dependencies consistent with the outputs named by link rules producing the target artifacts. Fixes: #20264
This commit is contained in:
parent
ab2fc91821
commit
08699cec68
@ -1969,7 +1969,8 @@ bool cmLocalGenerator::GetRealDependency(const std::string& inName,
|
||||
case cmStateEnums::SHARED_LIBRARY:
|
||||
case cmStateEnums::MODULE_LIBRARY:
|
||||
case cmStateEnums::UNKNOWN_LIBRARY:
|
||||
dep = target->GetLocation(config);
|
||||
dep = target->GetFullPath(config, cmStateEnums::RuntimeBinaryArtifact,
|
||||
/*realname=*/true);
|
||||
return true;
|
||||
case cmStateEnums::OBJECT_LIBRARY:
|
||||
// An object library has no single file on which to depend.
|
||||
|
@ -566,3 +566,11 @@ add_custom_command(
|
||||
)
|
||||
|
||||
add_custom_target(depends_on_in_rel_source_path ALL DEPENDS "depends_on_in_rel_source_path.txt")
|
||||
|
||||
add_library(mac_fw SHARED mac_fw.c)
|
||||
set_target_properties(mac_fw PROPERTIES
|
||||
FRAMEWORK 1
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib
|
||||
)
|
||||
add_custom_command(OUTPUT mac_fw.txt COMMAND ${CMAKE_COMMAND} -E touch mac_fw.txt DEPENDS mac_fw)
|
||||
add_custom_target(drive_mac_fw ALL DEPENDS mac_fw.txt)
|
||||
|
4
Tests/CustomCommand/mac_fw.c
Normal file
4
Tests/CustomCommand/mac_fw.c
Normal file
@ -0,0 +1,4 @@
|
||||
int mac_fw(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user