Skip to content

Commit

Permalink
mimic liblzma, add version script
Browse files Browse the repository at this point in the history
  • Loading branch information
smx-smx committed Apr 9, 2024
1 parent 7db28b0 commit 250613b
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
18 changes: 11 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.14)
cmake_minimum_required(VERSION 3.24)
project(xzre LANGUAGES C ASM)

set(CMAKE_C_STANDARD 23)
Expand All @@ -8,8 +8,10 @@ find_library(LZMA_LIBRARY NAMES liblzma.a REQUIRED)
message(STATUS "Using ${LZMA_LIBRARY}")

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_compile_options(-Wno-deprecated-declarations)

add_executable(xzre)
add_library(xzre_lib SHARED)
add_library(lzma SHARED)

set(SOURCES
${CMAKE_SOURCE_DIR}/liblzma_la-crc64-fast.o
Expand All @@ -19,17 +21,19 @@ set(SOURCES
)

target_sources(xzre PRIVATE ${SOURCES})
target_sources(xzre_lib PRIVATE ${SOURCES})
target_compile_definitions(xzre_lib PRIVATE XZRE_SHARED)
target_sources(lzma PRIVATE ${SOURCES})
target_compile_definitions(lzma PRIVATE XZRE_SHARED)

target_link_libraries(xzre ${LZMA_LIBRARY})
target_link_libraries(xzre_lib ${LZMA_LIBRARY})
target_link_libraries(lzma "$<LINK_LIBRARY:WHOLE_ARCHIVE,${LZMA_LIBRARY}>")

target_link_options(xzre PRIVATE "LINKER:--no-undefined")
target_link_options(xzre_lib PRIVATE "LINKER:--no-undefined")
target_link_options(lzma PRIVATE
"LINKER:--no-undefined"
"LINKER:--version-script=${CMAKE_SOURCE_DIR}/xzre.ver")

target_link_options(xzre PRIVATE -T ${CMAKE_SOURCE_DIR}/xzre.lds)
target_link_options(xzre_lib PRIVATE -T ${CMAKE_SOURCE_DIR}/xzre.lds)
target_link_options(lzma PRIVATE -T ${CMAKE_SOURCE_DIR}/xzre.lds)

# disassemble the sample code to compare against the dasm
add_custom_target(xzre_dasm ALL
Expand Down
4 changes: 4 additions & 0 deletions xzre.ver
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
XZ_5.0 {
global:
*;
};

0 comments on commit 250613b

Please sign in to comment.