mirror of
https://github.com/reactos/CMake.git
synced 2025-02-16 01:28:48 +00:00
GHS: Append ".gpj" to target name when generating build command
-- Add test demonstrating issue -- In the case of executable targets the target name is usually the same as used in "-o filename" But for static libraries the target name is usually "-o libname.a" "gbuild.exe target" will build whatever target matches against even the output from the compiler or linker But the targets in "cmake --build . --target name" should be target names in CMakeLists.txt not the actual filenames So change the "name" to "name.gpj" so it matches the target name in CMakeLists.txt. Fixes #15975
This commit is contained in:
parent
0c9e47d7cd
commit
1a66acdef2
@ -413,7 +413,11 @@ void cmGlobalGhsMultiGenerator::GenerateBuildCommand(
|
||||
if (targetName == "clean") {
|
||||
makeCommand.push_back("-clean");
|
||||
} else {
|
||||
makeCommand.push_back(targetName);
|
||||
if (targetName.compare(targetName.size() - 4, 4, ".gpj") == 0) {
|
||||
makeCommand.push_back(targetName);
|
||||
} else {
|
||||
makeCommand.push_back(targetName + ".gpj");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2316,6 +2316,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
||||
"${CMAKE_CMAKE_COMMAND} -P ${CMake_SOURCE_DIR}/Tests/GhsMulti/GhsMultiMultipleProjects/verify.cmake")
|
||||
add_test_GhsMulti(compiler_options_none GhsMultiCompilerOptions None "-DRUN_TEST=RELEASE_FLAGS -DRUN_TEST_BUILD_TYPE=\"\"" "")
|
||||
add_test_GhsMulti(compiler_options_kernel GhsMultiCompilerOptions Kernel "-DRUN_TEST=KERNEL_FLAGS -DRUN_TEST_BUILD_TYPE=DEBUG" "")
|
||||
add_test_GhsMulti(try_compile_copy GhsMultiCopyFile "" "" "")
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/GhsMulti/${ghs_config_name}")
|
||||
#unset ghs config variables
|
||||
unset(ghs_config_name)
|
||||
|
35
Tests/GhsMulti/GhsMultiCopyFile/CMakeLists.txt
Normal file
35
Tests/GhsMulti/GhsMultiCopyFile/CMakeLists.txt
Normal file
@ -0,0 +1,35 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
|
||||
|
||||
project(test C)
|
||||
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
try_compile(RESULT
|
||||
${CMAKE_CURRENT_BINARY_DIR}/build
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test.c
|
||||
CMAKE_FLAGS -DGHS_BSP_NAME=${GHS_BSP_NAME}
|
||||
-DGHS_OS_ROOT=${GHS_OS_ROOT}
|
||||
-DGHS_OS_DIR=${GHS_OS_DIR}
|
||||
-DGHS_TOOLSET_ROOT=${GHS_TOOLSET_ROOT}
|
||||
-DGHS_TARGET_PLATFORM=${GHS_TARGET_PLATFORM}
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
COPY_FILE "${CMAKE_CURRENT_BINARY_DIR}/test_library"
|
||||
)
|
||||
|
||||
message(STATUS "Output from build:\n${OUTPUT}")
|
||||
|
||||
if(NOT RESULT)
|
||||
message(SEND_ERROR "try_compile() failed")
|
||||
endif()
|
||||
|
||||
if(EXISTS "${CMAKE_CURRENT_BINARY_DIR}/test_library")
|
||||
if (IS_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/test_library")
|
||||
message(SEND_ERROR "library is folder !")
|
||||
else()
|
||||
message(STATUS "library seems okay")
|
||||
endif()
|
||||
else()
|
||||
message(SEND_ERROR "library is not found !")
|
||||
endif()
|
4
Tests/GhsMulti/GhsMultiCopyFile/test.c
Normal file
4
Tests/GhsMulti/GhsMultiCopyFile/test.c
Normal file
@ -0,0 +1,4 @@
|
||||
int lib(int x)
|
||||
{
|
||||
return -x;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user