mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 16:12:58 +00:00
[CMAKE] Turn import libs into regular C static libs
Embed msvcrtex into libmsvcrt Idea taken from Thomas Faber
This commit is contained in:
parent
cad583967b
commit
b96e88894a
7 changed files with 109 additions and 60 deletions
|
@ -1,8 +1,21 @@
|
|||
|
||||
if(NOT MSVC)
|
||||
_add_library(oldnames STATIC EXCLUDE_FROM_ALL ${CMAKE_CURRENT_SOURCE_DIR}/moldname-msvcrt.def)
|
||||
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/moldname-msvcrt.def PROPERTIES EXTERNAL_OBJECT TRUE)
|
||||
set_target_properties(oldnames PROPERTIES LINKER_LANGUAGE "IMPLIB" PREFIX "")
|
||||
# Use the same trick as with the other import libs. See gcc.cmake --> generate_import_lib function
|
||||
set(LIBRARY_PRIVATE_DIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/oldnames.dir)
|
||||
add_custom_command(
|
||||
OUTPUT ${LIBRARY_PRIVATE_DIR}/oldnames.a
|
||||
# ar just puts stuff into the archive, without looking twice. Just delete the lib, we're going to rebuild it anyway
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f $<TARGET_FILE:oldnames>
|
||||
COMMAND ${CMAKE_DLLTOOL} --def ${CMAKE_CURRENT_SOURCE_DIR}/moldname-msvcrt.def --kill-at --output-lib=oldnames.a -t oldnames
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/moldname-msvcrt.def
|
||||
WORKING_DIRECTORY ${LIBRARY_PRIVATE_DIR})
|
||||
set_source_files_properties(
|
||||
${LIBRARY_PRIVATE_DIR}/oldnames.a
|
||||
PROPERTIES
|
||||
EXTERNAL_OBJECT TRUE)
|
||||
|
||||
_add_library(oldnames STATIC EXCLUDE_FROM_ALL ${LIBRARY_PRIVATE_DIR}/oldnames.a)
|
||||
set_target_properties(oldnames PROPERTIES LINKER_LANGUAGE "C")
|
||||
else()
|
||||
add_asm_files(oldnames_asm oldnames-msvcrt.S)
|
||||
add_library(oldnames ${oldnames_asm})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue