summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Koritzinsky <jekoritz@microsoft.com>2024-06-11 22:08:57 (GMT)
committerBrad King <brad.king@kitware.com>2024-06-20 14:14:59 (GMT)
commitfaadb864748219152f9a026be5ef08d135f18173 (patch)
treeeaad48b7989a208b08c00383b1119de5b9ef2f23
parent0b56684f739ed7e17eaa98fb9ec275fad572cca7 (diff)
downloadCMake-faadb864748219152f9a026be5ef08d135f18173.zip
CMake-faadb864748219152f9a026be5ef08d135f18173.tar.gz
CMake-faadb864748219152f9a026be5ef08d135f18173.tar.bz2
ASM_MASM: Add support for masm-only static libraries
Set correct command to create a static library for Microsoft assembly dialects. Fixes: #18889
-rw-r--r--Modules/CMakeASM_MARMASMInformation.cmake1
-rw-r--r--Modules/CMakeASM_MASMInformation.cmake1
-rw-r--r--Tests/VSMARMASM/CMakeLists.txt1
-rw-r--r--Tests/VSMARMASM/empty.asm1
-rw-r--r--Tests/VSMASM/CMakeLists.txt1
-rw-r--r--Tests/VSMASM/empty.asm1
6 files changed, 6 insertions, 0 deletions
diff --git a/Modules/CMakeASM_MARMASMInformation.cmake b/Modules/CMakeASM_MARMASMInformation.cmake
index a47f7c2..51bd313 100644
--- a/Modules/CMakeASM_MARMASMInformation.cmake
+++ b/Modules/CMakeASM_MARMASMInformation.cmake
@@ -9,6 +9,7 @@ set(ASM_DIALECT "_MARMASM")
set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm)
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <INCLUDES> <FLAGS> -o <OBJECT> <SOURCE>")
+set(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY "<CMAKE_AR> <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
# The ASM_MARMASM compiler id for this compiler is "MSVC", so fill out the runtime library table.
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded "")
diff --git a/Modules/CMakeASM_MASMInformation.cmake b/Modules/CMakeASM_MASMInformation.cmake
index 11b83662..64ae070 100644
--- a/Modules/CMakeASM_MASMInformation.cmake
+++ b/Modules/CMakeASM_MASMInformation.cmake
@@ -9,6 +9,7 @@ set(ASM_DIALECT "_MASM")
set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm)
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -c -Fo <OBJECT> <SOURCE>")
+set(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY "<CMAKE_AR> <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
# The ASM_MASM compiler id for this compiler is "MSVC", so fill out the runtime library table.
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded "")
diff --git a/Tests/VSMARMASM/CMakeLists.txt b/Tests/VSMARMASM/CMakeLists.txt
index 85740de..7498461 100644
--- a/Tests/VSMARMASM/CMakeLists.txt
+++ b/Tests/VSMARMASM/CMakeLists.txt
@@ -4,3 +4,4 @@ add_executable(VSMARMASM main.c foo.asm)
target_compile_options(VSMARMASM PRIVATE
"$<$<COMPILE_LANGUAGE:ASM_MARMASM>:SHELL:-predefine \"zero SETA 0\">"
)
+add_library(empty STATIC empty.asm)
diff --git a/Tests/VSMARMASM/empty.asm b/Tests/VSMARMASM/empty.asm
new file mode 100644
index 0000000..a6a9baf
--- /dev/null
+++ b/Tests/VSMARMASM/empty.asm
@@ -0,0 +1 @@
+end
diff --git a/Tests/VSMASM/CMakeLists.txt b/Tests/VSMASM/CMakeLists.txt
index 49bd24a..bf9a4b8 100644
--- a/Tests/VSMASM/CMakeLists.txt
+++ b/Tests/VSMASM/CMakeLists.txt
@@ -10,3 +10,4 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
add_executable(VSMASM main.c foo.asm)
target_compile_definitions(VSMASM PUBLIC DEF_FOO)
target_compile_options(VSMASM PUBLIC -DDEF_BAR)
+add_library(empty STATIC empty.asm)
diff --git a/Tests/VSMASM/empty.asm b/Tests/VSMASM/empty.asm
new file mode 100644
index 0000000..a6a9baf
--- /dev/null
+++ b/Tests/VSMASM/empty.asm
@@ -0,0 +1 @@
+end