@@ -5,15 +5,15 @@ set(CMAKE_CXX_STANDARD 20)
5
5
set (CMAKE_BUILD_TYPE Release) # Always uses Release mode to build BDS plugin for ABI Compatibility
6
6
7
7
file (
8
- GLOB_RECURSE SRC_FILES
9
- ${PROJECT_SOURCE_DIR} /third-party/include /*.h
10
- ${PROJECT_SOURCE_DIR} /third-party/include /*.hpp
11
- ${PROJECT_SOURCE_DIR} /include /*.h
12
- ${PROJECT_SOURCE_DIR} /include /*.hpp
13
- ${PROJECT_SOURCE_DIR} /src/*.cpp
14
- ${PROJECT_SOURCE_DIR} /src/*.hpp
15
- ${PROJECT_SOURCE_DIR} /src/*.h
16
- ${PROJECT_SOURCE_DIR} /src/*.rc
8
+ GLOB_RECURSE SRC_FILES
9
+ ${PROJECT_SOURCE_DIR} /third-party/include /*.h
10
+ ${PROJECT_SOURCE_DIR} /third-party/include /*.hpp
11
+ ${PROJECT_SOURCE_DIR} /include /*.h
12
+ ${PROJECT_SOURCE_DIR} /include /*.hpp
13
+ ${PROJECT_SOURCE_DIR} /src/*.cpp
14
+ ${PROJECT_SOURCE_DIR} /src/*.hpp
15
+ ${PROJECT_SOURCE_DIR} /src/*.h
16
+ ${PROJECT_SOURCE_DIR} /src/*.rc
17
17
)
18
18
19
19
# third-party source files
@@ -25,80 +25,81 @@ add_library(LiteLoader SHARED ${SRC_FILES} ${THIRD_PARTY_SRC_FILES})
25
25
string (REPLACE "/EHsc" "/EHa" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} )
26
26
27
27
target_compile_options (
28
- LiteLoader
29
- PRIVATE /permissive- /MD /MP /analyze:external- /GS /GL /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /sdl /Zc:inline /fp:precise /errorReport:prompt /WX- /Zc:forScope /Gd /Oi /FC /nologo /Ot /diagnostics:column /utf-8
28
+ LiteLoader
29
+ PRIVATE /permissive- /MD /MP /analyze:external- /GS /GL /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /sdl /Zc:inline /fp:precise /errorReport:prompt /WX- /Zc:forScope /Gd /Oi /FC /nologo /Ot /diagnostics:column /utf-8
30
30
)
31
31
32
32
target_compile_definitions (
33
- LiteLoader
34
- PRIVATE -DUNICODE -DNDEBUG -DLITELOADER_EXPORTS -DWIN32_LEAN_AND_MEAN -DCPPHTTPLIB_OPENSSL_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -D_USRDLL -D_AMD64_ -DNOMINMAX
33
+ LiteLoader
34
+ PRIVATE -DUNICODE -DNDEBUG -DLITELOADER_EXPORTS -DWIN32_LEAN_AND_MEAN -DCPPHTTPLIB_OPENSSL_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -D_USRDLL -D_AMD64_ -DNOMINMAX
35
35
)
36
36
37
37
# use delayload to import BDS APIs manually(bedrock_server.dll does not need to exist)
38
38
target_link_options (
39
- LiteLoader
40
- PRIVATE /MANIFEST /LTCG:incremental /NXCOMPAT /DEBUG:FULL /DLL /MACHINE:X64 /OPT:REF /INCREMENTAL:NO /SUBSYSTEM:CONSOLE /MANIFESTUAC:NO /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /TLBID:1 /DELAYLOAD:bedrock_server.dll
39
+ LiteLoader
40
+ PRIVATE /MANIFEST /LTCG /NXCOMPAT /DEBUG:FULL /DLL /MACHINE:X64 /OPT:REF /INCREMENTAL:NO /SUBSYSTEM:CONSOLE /MANIFESTUAC:NO /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /TLBID:1 /DELAYLOAD:bedrock_server.dll
41
41
)
42
42
43
43
target_link_libraries (
44
- LiteLoader
45
- "${PROJECT_SOURCE_DIR} /third-party/lib/leveldb/leveldb.lib"
46
- "${PROJECT_SOURCE_DIR} /third-party/lib/openssl/libcrypto.lib"
47
- "${PROJECT_SOURCE_DIR} /third-party/lib/openssl/libssl.lib"
48
- "${PROJECT_SOURCE_DIR} /third-party/lib/SQLiteCpp/SQLiteCpp.lib"
49
- "${PROJECT_SOURCE_DIR} /third-party/lib/SQLiteCpp/sqlite3.lib"
50
- "${PROJECT_SOURCE_DIR} /third-party/lib/mysql/mysqlclient.lib"
51
- "${PROJECT_SOURCE_DIR} /third-party/lib/compact_enc_det/ced.lib"
52
- "${PROJECT_SOURCE_DIR} /third-party/lib/dyncall/dyncall_s.lib"
53
- "${PROJECT_SOURCE_DIR} /third-party/lib/dyncall/dyncallback_s.lib"
54
- "${PROJECT_SOURCE_DIR} /third-party/lib/dyncall/dynload_s.lib"
55
- "${PROJECT_SOURCE_DIR} /third-party/lib/dbghelp/dbghelp.lib"
56
- # Please make sure that the BDS APIs ImportLibrary is at the bottom of the list to ensure proper linking.
57
- "${PROJECT_SOURCE_DIR} /Lib/bedrock_server_api.lib"
58
- "${PROJECT_SOURCE_DIR} /Lib/bedrock_server_var.lib"
59
- LLPreLoader
44
+ LiteLoader
45
+ "${PROJECT_SOURCE_DIR} /third-party/lib/leveldb/leveldb.lib"
46
+ "${PROJECT_SOURCE_DIR} /third-party/lib/openssl/libcrypto.lib"
47
+ "${PROJECT_SOURCE_DIR} /third-party/lib/openssl/libssl.lib"
48
+ "${PROJECT_SOURCE_DIR} /third-party/lib/SQLiteCpp/SQLiteCpp.lib"
49
+ "${PROJECT_SOURCE_DIR} /third-party/lib/SQLiteCpp/sqlite3.lib"
50
+ "${PROJECT_SOURCE_DIR} /third-party/lib/mysql/mysqlclient.lib"
51
+ "${PROJECT_SOURCE_DIR} /third-party/lib/compact_enc_det/ced.lib"
52
+ "${PROJECT_SOURCE_DIR} /third-party/lib/dyncall/dyncall_s.lib"
53
+ "${PROJECT_SOURCE_DIR} /third-party/lib/dyncall/dyncallback_s.lib"
54
+ "${PROJECT_SOURCE_DIR} /third-party/lib/dyncall/dynload_s.lib"
55
+ "${PROJECT_SOURCE_DIR} /third-party/lib/dbghelp/dbghelp.lib"
56
+
57
+ # Please make sure that the BDS APIs ImportLibrary is at the bottom of the list to ensure proper linking.
58
+ "${PROJECT_SOURCE_DIR} /Lib/bedrock_server_api.lib"
59
+ "${PROJECT_SOURCE_DIR} /Lib/bedrock_server_var.lib"
60
+ LLPreLoader
60
61
)
61
62
62
63
target_include_directories (
63
- LiteLoader SYSTEM
64
- PRIVATE ${PROJECT_SOURCE_DIR} /third-party/include
64
+ LiteLoader SYSTEM
65
+ PRIVATE ${PROJECT_SOURCE_DIR} /third-party/include
65
66
)
66
67
67
68
target_include_directories (
68
- LiteLoader
69
- PRIVATE ${PROJECT_SOURCE_DIR} /include /
70
- PRIVATE ${CMAKE_SOURCE_DIR}
69
+ LiteLoader
70
+ PRIVATE ${PROJECT_SOURCE_DIR} /include /
71
+ PRIVATE ${CMAKE_SOURCE_DIR}
71
72
)
72
73
73
74
add_custom_command (
74
- TARGET LiteLoader PRE_BUILD
75
- COMMAND ${CMAKE_SOURCE_DIR} /scripts/PrepareLibraries.cmd ${CMAKE_SOURCE_DIR}
75
+ TARGET LiteLoader PRE_BUILD
76
+ COMMAND ${CMAKE_SOURCE_DIR} /scripts/PrepareLibraries.cmd ${CMAKE_SOURCE_DIR}
76
77
)
77
78
78
79
# Copy the built DLL and PDB to the output directory
79
80
add_custom_command (
80
- TARGET LiteLoader POST_BUILD
81
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:LiteLoader> ${CMAKE_BINARY_DIR} /output /
82
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_PDB_FILE:LiteLoader> ${CMAKE_BINARY_DIR} /pdb/
83
- COMMENT "Copying LiteLoader DLL and PDB to output directory"
84
- VERBATIM
81
+ TARGET LiteLoader POST_BUILD
82
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:LiteLoader> ${CMAKE_BINARY_DIR} /output /
83
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_PDB_FILE:LiteLoader> ${CMAKE_BINARY_DIR} /pdb/
84
+ COMMENT "Copying LiteLoader DLL and PDB to output directory"
85
+ VERBATIM
85
86
)
86
87
87
88
# Copy the built lib to the SDK directory
88
89
add_custom_command (
89
- TARGET LiteLoader POST_BUILD
90
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_LINKER_FILE:LiteLoader> ${CMAKE_BINARY_DIR} /sdk/lib/
91
- COMMENT "Copying LiteLoader Lib to SDK directory"
92
- VERBATIM
90
+ TARGET LiteLoader POST_BUILD
91
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_LINKER_FILE:LiteLoader> ${CMAKE_BINARY_DIR} /sdk/lib/
92
+ COMMENT "Copying LiteLoader Lib to SDK directory"
93
+ VERBATIM
93
94
)
94
95
95
96
# copy target DLL and PDB to local bds dev directory
96
97
if (NOT "${BDS_LOCAL_DEV_ENVIRONMENT_DIR} " STREQUAL "" )
97
- add_custom_command (
98
- TARGET LiteLoader POST_BUILD
99
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:LiteLoader> ${BDS_LOCAL_DEV_ENVIRONMENT_DIR} /
100
- COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_PDB_FILE:LiteLoader> ${BDS_LOCAL_DEV_ENVIRONMENT_DIR} /plugins/LiteLoader/pdb/
101
- COMMENT "Copying ${PROJECT_NAME} DLL and PDB to local bds dev directory"
102
- VERBATIM
103
- )
98
+ add_custom_command (
99
+ TARGET LiteLoader POST_BUILD
100
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:LiteLoader> ${BDS_LOCAL_DEV_ENVIRONMENT_DIR} /
101
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_PDB_FILE:LiteLoader> ${BDS_LOCAL_DEV_ENVIRONMENT_DIR} /plugins/LiteLoader/pdb/
102
+ COMMENT "Copying ${PROJECT_NAME} DLL and PDB to local bds dev directory"
103
+ VERBATIM
104
+ )
104
105
endif ()
0 commit comments