summaryrefslogtreecommitdiffstats
path: root/libraries/pack200/CMakeLists.txt
blob: 31eb0f738c2db19c8e8fa7cafe0a2a892a2aff3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
cmake_minimum_required(VERSION 3.1)

project(MultiMC_unpack200)

option(PACK200_BUILD_BINARY "Build a tiny utility that decompresses pack200 streams" OFF)

# Find ZLIB for quazip
find_package(ZLIB REQUIRED)

set(PACK200_SRC
    include/unpack200.h
    src/bands.cpp
    src/bands.h
    src/bytes.cpp
    src/bytes.h
    src/coding.cpp
    src/coding.h
    src/constants.h
    src/defines.h
    src/unpack200.cpp
    src/unpack.cpp
    src/unpack.h
    src/utils.cpp
    src/utils.h
    src/zip.cpp
    src/zip.h
)

if (Qt5_POSITION_INDEPENDENT_CODE)
    SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()

add_library(MultiMC_unpack200 SHARED ${PACK200_SRC})
target_include_directories(MultiMC_unpack200 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_BINARY_DIR}" PRIVATE ${ZLIB_INCLUDE_DIRS} "${CMAKE_CURRENT_SOURCE_DIR}/src")
target_link_libraries(MultiMC_unpack200 ${ZLIB_LIBRARIES})

set_target_properties(MultiMC_unpack200 PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN 1)
generate_export_header(MultiMC_unpack200)

# Install it
install(
    TARGETS MultiMC_unpack200
    RUNTIME DESTINATION ${LIBRARY_DEST_DIR}
    LIBRARY DESTINATION ${LIBRARY_DEST_DIR}
)

if(PACK200_BUILD_BINARY)
    add_executable(anti200 anti200.cpp)
    target_link_libraries(anti200 MultiMC_unpack200)
endif()