blob: bbc47ae333d2a9d081fefddbfb8c1645bf85e8e2 (
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
cmake_minimum_required(VERSION 3.16)
find_package(Qt6 COMPONENTS Widgets REQUIRED)
find_package(ZLIB REQUIRED)
# Try cmake config first, fall back to pkg-config
find_package(lz4 CONFIG QUIET)
if(NOT lz4_FOUND)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LZ4 REQUIRED IMPORTED_TARGET liblz4)
endif()
# lz4 1.10+ exports LZ4::lz4, older versions export lz4::lz4
if(TARGET LZ4::lz4 AND NOT TARGET lz4::lz4)
add_library(lz4::lz4 ALIAS LZ4::lz4)
endif()
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
add_library(game_gamebryo STATIC
dummybsa.cpp
dummybsa.h
gamebryobsainvalidation.cpp
gamebryobsainvalidation.h
gamebryodataarchives.cpp
gamebryodataarchives.h
gamebryogameplugins.cpp
gamebryogameplugins.h
gamebryolocalsavegames.cpp
gamebryolocalsavegames.h
gamebryomoddatachecker.cpp
gamebryomoddatachecker.h
gamebryomoddatacontent.cpp
gamebryomoddatacontent.h
gamebryosavegame.cpp
gamebryosavegame.h
gamebryosavegameinfo.cpp
gamebryosavegameinfo.h
gamebryosavegameinfowidget.cpp
gamebryosavegameinfowidget.h
gamebryosavegameinfowidget.ui
gamebryoscriptextender.cpp
gamebryoscriptextender.h
gamebryounmanagedmods.cpp
gamebryounmanagedmods.h
gamegamebryo.cpp
gamegamebryo.h
vdf_parser.h
)
target_link_libraries(game_gamebryo
PUBLIC
uibase
game_features
Qt6::Widgets
PRIVATE
ZLIB::ZLIB
$<IF:$<TARGET_EXISTS:lz4::lz4>,lz4::lz4,PkgConfig::LZ4>
)
# NaK FFI for game detection (replaces Windows registry)
if(TARGET mo2::nak_ffi)
target_link_libraries(game_gamebryo PRIVATE mo2::nak_ffi)
target_compile_definitions(game_gamebryo PRIVATE HAS_NAK_FFI)
endif()
target_include_directories(game_gamebryo PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
# Keep uibase bare includes after system headers to avoid strings.h collision.
target_compile_options(game_gamebryo PRIVATE
"-idirafter" "${CMAKE_SOURCE_DIR}/libs/uibase/include/uibase"
)
# AUTOMOC does not reliably honor -idirafter, so provide the bare uibase include
# path explicitly for moc parsing of Q_INTERFACES declarations.
set_property(TARGET game_gamebryo APPEND PROPERTY AUTOMOC_MOC_OPTIONS
"-I${CMAKE_SOURCE_DIR}/libs/uibase/include/uibase"
)
|