PlayerLink/CMakeLists.txt

37 lines
1.5 KiB
CMake

cmake_minimum_required (VERSION 3.8)
include("cmake/create_resources.cmake")
#enable objective c support on mac os, needed for wxwidgets and compile for both intel macs and apple sillicon macs
if(APPLE)
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
project ("PlayerLink" LANGUAGES C CXX OBJCXX)
else()
project ("PlayerLink" LANGUAGES C CXX)
endif()
create_resources("rsrc" "src/rsrc.hpp")
file(GLOB_RECURSE SOURCES "src/*.cpp")
add_executable (PlayerLink ${SOURCES})
set_property(TARGET PlayerLink PROPERTY CXX_STANDARD 20)
add_subdirectory("vendor")
set(LIBRARIES discord-rpc libcurl_static mbedcrypto mbedx509 mbedtls wxmono)
#use windows subsystem to disable console window and link winrt
if(WIN32)
list(APPEND LIBRARIES WindowsApp)
target_link_options(PlayerLink PRIVATE "/SUBSYSTEM:WINDOWS" "/ENTRY:mainCRTStartup")
endif()
#search directories for the autogenerated wxwidgets setup.h file for all plattforms
file(GLOB wx_setup_dir
"${CMAKE_BINARY_DIR}/vendor/wxWidgets/lib/*/mswu"
"${CMAKE_BINARY_DIR}/vendor/wxWidgets/lib/*/gtk3u"
"${CMAKE_BINARY_DIR}/vendor/wxWidgets/lib/wx/include/*"
)
if(wx_setup_dir)
message(STATUS "wxWidgets setup.h directory found: ${wx_setup_dir}")
target_include_directories(PlayerLink PRIVATE vendor vendor/wxWidgets/include ${wx_setup_dir})
else()
message(FATAL_ERROR "wx/setup.h not found. Please check your wxWidgets build configuration.")
endif()
target_link_libraries(PlayerLink PUBLIC ${LIBRARIES})