mirror of
https://github.com/Kitware/CMake.git
synced 2026-08-08 00:30:48 +00:00
Merge topic 'genex-TARGET_BUNDLE_DIR_NAME' into release-3.24
8bd98b8117 Genex: Fix TARGET_BUNDLE_DIR_NAME incorrect extension
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7428
This commit is contained in:
@@ -2763,8 +2763,18 @@ struct TargetFilesystemArtifactResultCreator<ArtifactBundleDirNameTag>
|
||||
return std::string();
|
||||
}
|
||||
|
||||
return target->GetAppBundleDirectory(context->Config,
|
||||
cmGeneratorTarget::BundleDirLevel);
|
||||
auto level = cmGeneratorTarget::BundleDirLevel;
|
||||
auto config = context->Config;
|
||||
if (target->IsAppBundleOnApple()) {
|
||||
return target->GetAppBundleDirectory(config, level);
|
||||
}
|
||||
if (target->IsFrameworkOnApple()) {
|
||||
return target->GetFrameworkDirectory(config, level);
|
||||
}
|
||||
if (target->IsCFBundleOnApple()) {
|
||||
return target->GetCFBundleDirectory(config, level);
|
||||
}
|
||||
return std::string();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -2,6 +2,9 @@ include(RunCMake)
|
||||
|
||||
run_cmake(TARGET_FILE-recursion)
|
||||
run_cmake(OUTPUT_NAME-recursion)
|
||||
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
|
||||
run_cmake(TARGET_BUNDLE_DIR_NAME)
|
||||
endif()
|
||||
run_cmake(TARGET_FILE_DIR-dependency)
|
||||
run_cmake(TARGET_FILE_DIR-no-dependency)
|
||||
run_cmake(TARGET_FILE_PREFIX-imported-target)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
include ("${RunCMake_TEST_BINARY_DIR}/TARGET_BUNDLE_DIR_NAME-generated.cmake")
|
||||
@@ -0,0 +1,33 @@
|
||||
enable_language(C)
|
||||
|
||||
set(GENERATE_CONTENT [[
|
||||
macro (check_value test_msg value expected)
|
||||
if (NOT "${value}" STREQUAL "${expected}")
|
||||
string (APPEND RunCMake_TEST_FAILED "${test_msg}: actual result:\n [${value}]\nbut expected:\n [${expected}]\n")
|
||||
endif()
|
||||
endmacro()
|
||||
]])
|
||||
|
||||
add_library(test-lib MODULE empty.c)
|
||||
set_target_properties(test-lib PROPERTIES BUNDLE TRUE)
|
||||
|
||||
add_library(test-fw empty.c)
|
||||
set_target_properties(test-fw PROPERTIES FRAMEWORK TRUE)
|
||||
|
||||
add_executable(test-app MACOSX_BUNDLE empty.c)
|
||||
|
||||
add_executable(test-app-custom MACOSX_BUNDLE empty.c)
|
||||
set_target_properties(test-app-custom PROPERTIES BUNDLE_EXTENSION custom)
|
||||
|
||||
string(APPEND GENERATE_CONTENT [[
|
||||
check_value("TARGET_BUNDLE_DIR_NAME library" "$<TARGET_BUNDLE_DIR_NAME:test-lib>" "test-lib.bundle")
|
||||
check_value("TARGET_BUNDLE_DIR_NAME framework" "$<TARGET_BUNDLE_DIR_NAME:test-fw>" "test-fw.framework")
|
||||
check_value("TARGET_BUNDLE_DIR_NAME app" "$<TARGET_BUNDLE_DIR_NAME:test-app>" "test-app.app")
|
||||
check_value("TARGET_BUNDLE_DIR_NAME custom" "$<TARGET_BUNDLE_DIR_NAME:test-app-custom>" "test-app-custom.custom")
|
||||
]])
|
||||
|
||||
file(
|
||||
GENERATE
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/TARGET_BUNDLE_DIR_NAME-generated.cmake"
|
||||
CONTENT "${GENERATE_CONTENT}"
|
||||
)
|
||||
Reference in New Issue
Block a user