mirror of
https://github.com/acidicoala/SmokeAPI.git
synced 2025-12-05 21:15:39 -05:00
127 lines
3.8 KiB
CMake
127 lines
3.8 KiB
CMake
cmake_minimum_required(VERSION 3.24)
|
|
|
|
project(SmokeAPI VERSION 3.1.2)
|
|
|
|
include(KoalaBox/cmake/KoalaBox.cmake)
|
|
|
|
add_subdirectory(KoalaBox)
|
|
add_subdirectory(tools)
|
|
|
|
configure_build_config(extra_build_config)
|
|
|
|
set(SMOKE_API_STATIC_SOURCES
|
|
static/smoke_api/interfaces/steam_apps.hpp
|
|
static/smoke_api/interfaces/steam_apps.cpp
|
|
static/smoke_api/interfaces/steam_http.hpp
|
|
static/smoke_api/interfaces/steam_http.cpp
|
|
static/smoke_api/interfaces/steam_inventory.hpp
|
|
static/smoke_api/interfaces/steam_inventory.cpp
|
|
static/smoke_api/interfaces/steam_user.hpp
|
|
static/smoke_api/interfaces/steam_user.cpp
|
|
static/smoke_api/api.hpp
|
|
static/smoke_api/api.cpp
|
|
static/smoke_api/cache.hpp
|
|
static/smoke_api/cache.cpp
|
|
static/smoke_api/config.hpp
|
|
static/smoke_api/config.cpp
|
|
static/smoke_api/types.hpp
|
|
static/smoke_api/types.cpp
|
|
static/smoke_api/steamclient/steamclient.hpp
|
|
)
|
|
|
|
set(SMOKE_API_SOURCES
|
|
${SMOKE_API_STATIC_SOURCES}
|
|
src/smoke_api/smoke_api.cpp
|
|
src/smoke_api/smoke_api.hpp
|
|
src/steam_api/virtuals/isteamapps.cpp
|
|
src/steam_api/virtuals/isteamclient.cpp
|
|
src/steam_api/virtuals/isteamgameserver.cpp
|
|
src/steam_api/virtuals/isteamhttp.cpp
|
|
src/steam_api/virtuals/isteaminventory.cpp
|
|
src/steam_api/virtuals/isteamuser.cpp
|
|
src/steam_api/virtuals/steam_api_virtuals.hpp
|
|
src/steam_api/steam_client.hpp
|
|
src/steam_api/steam_client.cpp
|
|
src/steam_api/steam_interfaces.cpp
|
|
src/steam_api/steam_interfaces.hpp
|
|
src/steamclient/steamclient.cpp
|
|
)
|
|
|
|
if(WIN32)
|
|
set_32_and_64(STEAM_API_MODULE steam_api)
|
|
set_32_and_64(STEAMCLIENT_DLL steamclient)
|
|
|
|
list(APPEND SMOKE_API_SOURCES src/main_win.cpp)
|
|
else()
|
|
set_32_and_64(LINUX_DIR linux32 linux64)
|
|
set(STEAM_API_MODULE libsteam_api)
|
|
set(STEAMCLIENT_DLL steamclient)
|
|
|
|
list(APPEND SMOKE_API_SOURCES src/main_linux.cpp)
|
|
endif()
|
|
set_32_and_64(SMOKE_API_FILENAME smoke_api32 smoke_api64)
|
|
|
|
### SmokeAPI interface
|
|
|
|
add_library(SmokeAPI_common INTERFACE)
|
|
add_library(SmokeAPI::common ALIAS SmokeAPI_common)
|
|
|
|
target_include_directories(SmokeAPI_common INTERFACE
|
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/static>"
|
|
)
|
|
target_link_libraries(SmokeAPI_common INTERFACE KoalaBox $<TARGET_OBJECTS:KoalaBox>)
|
|
|
|
|
|
### Static SmokeAPI
|
|
|
|
add_library(SmokeAPI_static STATIC ${SMOKE_API_STATIC_SOURCES})
|
|
add_library(SmokeAPI::static ALIAS SmokeAPI_static)
|
|
|
|
target_link_libraries(SmokeAPI_static PUBLIC SmokeAPI::common)
|
|
|
|
### Shared SmokeAPI
|
|
|
|
add_library(SmokeAPI SHARED ${SMOKE_API_SOURCES})
|
|
target_link_libraries(SmokeAPI PUBLIC SmokeAPI::common)
|
|
set_target_properties(SmokeAPI PROPERTIES OUTPUT_NAME ${SMOKE_API_FILENAME})
|
|
|
|
configure_include_directories()
|
|
|
|
if(WIN32)
|
|
configure_version_resource(
|
|
TARGET SmokeAPI
|
|
FILE_DESC "Steamworks DLC unlocker"
|
|
ORIG_NAME ${SMOKE_API_FILENAME}
|
|
)
|
|
configure_linker_exports(
|
|
TARGET SmokeAPI
|
|
HEADER_NAME "linker_exports_for_steam_api.h"
|
|
FORWARDED_DLL "${STEAM_API_MODULE}_o"
|
|
INPUT_SOURCES_DIR ""
|
|
DLL_FILES_GLOB "${CMAKE_CURRENT_SOURCE_DIR}/res/steamworks/*/binaries/${STEAM_API_MODULE}.dll"
|
|
)
|
|
|
|
configure_linker_exports(
|
|
TARGET SmokeAPI
|
|
HEADER_NAME "linker_exports_for_version.h"
|
|
FORWARDED_DLL "C:/Windows/System32/version.dll"
|
|
INPUT_SOURCES_DIR ""
|
|
DLL_FILES_GLOB "C:/Windows/System32/version.dll"
|
|
)
|
|
else()
|
|
configure_linker_exports(
|
|
TARGET SmokeAPI
|
|
HEADER_NAME "libsteam_api_exports.cpp"
|
|
FORWARDED_DLL "${STEAM_API_MODULE}_o.so"
|
|
DLL_FILES_GLOB "${CMAKE_CURRENT_SOURCE_DIR}/res/steamworks/*/binaries/${LINUX_DIR}/${STEAM_API_MODULE}.so"
|
|
INPUT_SOURCES_DIR ""
|
|
)
|
|
endif()
|
|
|
|
## https://github.com/batterycenter/embed
|
|
CPMAddPackage(
|
|
URI "gh:batterycenter/embed@1.2.19"
|
|
OPTIONS "B_PRODUCTION_MODE ON"
|
|
)
|
|
b_embed(SmokeAPI "res/interface_lookup.json")
|