about summary refs log tree commit diff stats
path: root/CMakeLists.txt
blob: c4e7a98176a21ffbeb24797fcbf4b299c7626834 (plain) (blame)
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
31pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.hig
cmake_minimum_required (VERSION 3.1)
project (lingo_ap_tracker)

if (MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
set(CMAKE_WIN32_EXECUTABLE true)
set(CMAKE_EXE_LINKER_FLAGS /MANIFEST:NO)
endif(MSVC)

find_package(wxWidgets CONFIG REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(yaml-cpp REQUIRED)
find_package(websocketpp REQUIRED)
find_package(fmt REQUIRED)

include_directories(
  vendor/hkutil
  vendor/apclientpp
  vendor/asio/asio/include
  vendor/nlohmann
  vendor/valijson/include
  ${websocketpp_INCLUDE_DIRS}
  vendor/wswrap/include
  ${yaml-cpp_INCLUDE_DIRS}
  ${OpenSSL_INCLUDE_DIRS}
  vendor/whereami
  ${fmt_INCLUDE_DIRS}
  vendor
)

find_path(SYSTEM_INCLUDE_DIR zlib.h)
include_directories(${SYSTEM_INCLUDE_DIR})

link_directories(${openssl_LIBRARY_DIRS})

set(SOURCE_FILES
  "src/main.cpp"
  "src/tracker_frame.cpp"
  "src/tracker_panel.cpp"
  "src/game_data.cpp"
  "src/area_popup.cpp"
  "src/ap_state.cpp"
  "src/connection_dialog.cpp"
  "src/tracker_state.cpp"
  "src/tracker_config.cpp"
  "src/achievements_pane.cpp"
  "src/settings_dialog.cpp"
  "src/global.cpp"
  "src/subway_map.cpp"
  "src/network_set.cpp"
  "src/logger.cpp"
  "src/godot_variant.cpp"
  "src/ipc_state.cpp"
  "src/ipc_dialog.cpp"
  "src/report_popup.cpp"
  "vendor/whereami/whereami.c"
)

if (MSVC)
list(APPEND SOURCE_FILES "src/windows.rc")
endif(MSVC)

add_executable(lingo_ap_tracker ${SOURCE_FILES})
set_property(TARGET lingo_ap_tracker PROPERTY CXX_STANDARD 20)
set_property(TARGET lingo_ap_tracker PROPERTY CXX_STANDARD_REQUIRED ON)
target_link_libraries(lingo_ap_tracker PRIVATE fmt::fmt OpenSSL::SSL OpenSSL::Crypto websocketpp::websocketpp wx::core wx::base wx::net yaml-cpp::yaml-cpp)

set(SRC_DIR "${CMAKE_SOURCE_DIR}/assets")
set(DST_DIR "${CMAKE_BINARY_DIR}/$<CONFIG>/assets")

add_custom_target(copy_assets ALL
    COMMAND ${CMAKE_COMMAND} -E copy_directory ${SRC_DIR} ${DST_DIR}
    COMMENT "Copying folder from ${SRC_DIR} to ${DST_DIR}"
)

add_dependencies(lingo_ap_tracker copy_assets)