Skip to content

Commit 447cf9a

Browse files
committed
add option to not build tools
1 parent eae8fd7 commit 447cf9a

File tree

10 files changed

+110
-17
lines changed

10 files changed

+110
-17
lines changed

CMakeLists.txt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
cmake_minimum_required(VERSION 3.28)
22

3-
project(ArcpdsMockDummy)
4-
53
option(BUILD_TOOLS "Build the Collector and Mock" ON)
64

5+
# features that are installed via vcpkg
6+
if (BUILD_TOOLS)
7+
list(APPEND VCPKG_MANIFEST_FEATURES "build-tools")
8+
endif ()
9+
10+
project(ArcpdsMockDummy)
11+
712
# add project for xevtc (export xevtc.h via vcpkg)
813
add_subdirectory(xevtc)
914

@@ -13,4 +18,6 @@ if (BUILD_TOOLS)
1318

1419
add_subdirectory(arcdps_mock)
1520
add_subdirectory(arcdps_collector)
16-
endif ()
21+
endif ()
22+
23+
include(library_target.cmake)

arcdps_collector/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@ target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_23)
3636
target_link_libraries(${PROJECT_NAME} PUBLIC magic_enum::magic_enum)
3737
target_link_libraries(${PROJECT_NAME} PUBLIC nlohmann_json::nlohmann_json)
3838
target_link_libraries(${PROJECT_NAME} PUBLIC imgui::imgui)
39-
target_link_libraries(${PROJECT_NAME} PUBLIC ArcdpsMock)
39+
target_link_libraries(${PROJECT_NAME} PUBLIC ArcdpsMockXevtc)
4040
target_link_libraries(${PROJECT_NAME} PUBLIC ArcdpsMockLog)

arcdps_mock/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ target_compile_definitions(
2121
NOMINMAX
2222
MAGIC_ENUM_RANGE_MAX=256
2323
)
24+
target_compile_definitions(${PROJECT_NAME} PRIVATE MockProgram)
2425

2526
# add general sources
2627
target_sources(${PROJECT_NAME} PUBLIC
@@ -41,5 +42,5 @@ target_link_libraries(${PROJECT_NAME} PUBLIC magic_enum::magic_enum)
4142
target_link_libraries(${PROJECT_NAME} PUBLIC nlohmann_json::nlohmann_json)
4243
target_link_libraries(${PROJECT_NAME} PUBLIC imgui::imgui)
4344
target_link_libraries(${PROJECT_NAME} PUBLIC Version.lib d3d11.lib Winmm.lib)
44-
target_link_libraries(${PROJECT_NAME} PRIVATE ArcdpsMock)
45+
target_link_libraries(${PROJECT_NAME} PRIVATE ArcdpsMockXevtc)
4546
target_link_libraries(${PROJECT_NAME} PRIVATE ArcdpsMockLog)

arcdps_mock/CombatMock.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
#include "CombatMock.h"
22

33
#include <ArcdpsExtension/arcdps_structs.h>
4-
#include "Log.h"
5-
#include "Xevtc.h"
4+
#include "../xevtc/Xevtc.h"
65

76
#include <imgui/imgui.h>
87
#include <atomic>
98
#include <cassert>
109
#include <Windows.h>
1110
#include <nlohmann/json.hpp>
1211

12+
#ifdef MockProgram
13+
#include "Log.h"
14+
#else
15+
#define LOG(...)
16+
#endif
17+
1318
using json = nlohmann::json;
1419

1520
void CombatMock::AddAgent(const char* pAgentName, const char* pAccountName, Prof pProfession, uint32_t pElite, uint8_t pSubgroup, uint64_t pMasterUniqueId)

arcdps_mock/CombatMock.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include <list>
66
#include <map>
7-
#include <stdint.h>
7+
#include <cstdint>
88
#include <string>
99
#include <vector>
1010

cmake/Config.cmake.in

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
@PACKAGE_INIT@
2+
3+
include ( "${CMAKE_CURRENT_LIST_DIR}/ArcdpsMockTargets.cmake" )
4+
5+
# override Include Directories.
6+
# The generated Targets.cmake contains targets_sources() with BASE_DIRS, which causes the subfolder to be added to the include_directories.
7+
# We don't want this. The files should only be included via the subfolder: `#include <ArcdpsMock/arcdps_structs.h>`
8+
set_target_properties(ArcdpsMock::ArcdpsMock PROPERTIES
9+
INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/include"
10+
)

library_target.cmake

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
project(ArcdpsMock CXX)
2+
3+
find_package(nlohmann_json CONFIG REQUIRED)
4+
find_package(imgui CONFIG REQUIRED)
5+
find_package(magic_enum CONFIG REQUIRED)
6+
find_package(ArcdpsExtension CONFIG REQUIRED)
7+
8+
add_library(${PROJECT_NAME} STATIC)
9+
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
10+
11+
# Use -MT / -MTd runtime library
12+
set_property(TARGET ${PROJECT_NAME} PROPERTY
13+
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
14+
15+
# add general sources
16+
target_sources(${PROJECT_NAME} PUBLIC
17+
FILE_SET HEADERS
18+
FILES
19+
xevtc/Xevtc.h
20+
arcdps_mock/CombatMock.h
21+
)
22+
23+
target_sources(${PROJECT_NAME}
24+
PRIVATE
25+
arcdps_mock/CombatMock.cpp
26+
)
27+
28+
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_23)
29+
30+
target_link_libraries(${PROJECT_NAME} PUBLIC nlohmann_json::nlohmann_json)
31+
target_link_libraries(${PROJECT_NAME} PUBLIC imgui::imgui)
32+
target_link_libraries(${PROJECT_NAME} PUBLIC magic_enum::magic_enum)
33+
target_link_libraries(${PROJECT_NAME} PUBLIC ArcdpsExtension::ArcdpsExtension)
34+
35+
include(GNUInstallDirs)
36+
install(TARGETS ${PROJECT_NAME}
37+
EXPORT ArcdpsMockTargets
38+
FILE_SET HEADERS
39+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
40+
)
41+
42+
include(CMakePackageConfigHelpers)
43+
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in
44+
${CMAKE_CURRENT_BINARY_DIR}/ArcdpsMockConfig.cmake
45+
INSTALL_DESTINATION share/${PROJECT_NAME}
46+
)
47+
48+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ArcdpsMockConfig.cmake
49+
DESTINATION share/${PROJECT_NAME}
50+
)
51+
52+
install(EXPORT ArcdpsMockTargets
53+
NAMESPACE ${PROJECT_NAME}::
54+
FILE ArcdpsMockTargets.cmake
55+
DESTINATION share/${PROJECT_NAME}
56+
)

vcpkg-configuration.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{
1010
"kind": "git",
1111
"repository": "https://github.com/Zinn-o-Matics/vcpkg-registry",
12-
"baseline": "6089946ca176356dc6aebec224763829b8461344",
12+
"baseline": "a98624c2db279a897c3270fad40753cae641479a",
1313
"packages": [ "arcdps-extension", "arcdps-unofficial-extras", "imgui" ]
1414
}
1515
]

vcpkg.json

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,29 @@
33
"name": "arcdps-mock",
44
"version-string": "0.1.0",
55
"dependencies": [
6+
"imgui",
67
{
7-
"name": "imgui",
8+
"name": "arcdps-extension",
9+
"default-features": false,
810
"features": [
9-
"dx11-binding",
10-
"win32-binding"
11+
"imgui"
1112
]
1213
},
13-
"nlohmann-json",
14-
"arcdps-extension",
15-
"magic-enum"
16-
]
14+
"magic-enum",
15+
"nlohmann-json"
16+
],
17+
"features": {
18+
"build-tools": {
19+
"description": "install dependencies for the tools",
20+
"dependencies": [
21+
{
22+
"name": "imgui",
23+
"features": [
24+
"dx11-binding",
25+
"win32-binding"
26+
]
27+
}
28+
]
29+
}
30+
}
1731
}

xevtc/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
project(ArcdpsMock CXX)
1+
project(ArcdpsMockXevtc CXX)
22

33
add_library(${PROJECT_NAME} INTERFACE)
44
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

0 commit comments

Comments
 (0)