mirror of
https://github.com/acidicoala/SmokeAPI.git
synced 2026-01-24 21:42:53 -05:00
[WIP] Linux support
This commit is contained in:
@@ -7,11 +7,6 @@ include(KoalaBox/cmake/KoalaBox.cmake)
|
||||
add_subdirectory(KoalaBox)
|
||||
add_subdirectory(tools)
|
||||
|
||||
set_32_and_64(STEAMAPI_DLL steam_api)
|
||||
set_32_and_64(STEAMCLIENT_DLL steamclient)
|
||||
set_32_and_64(STEAM_API_DLL steam_api steam_api64)
|
||||
set_32_and_64(SMOKEAPI_DLL SmokeAPI32 SmokeAPI64)
|
||||
|
||||
configure_build_config(extra_build_config)
|
||||
|
||||
set(SMOKE_API_STATIC_SOURCES
|
||||
@@ -50,9 +45,22 @@ set(SMOKE_API_SOURCES
|
||||
src/steam_api/steam_interfaces.cpp
|
||||
src/steam_api/steam_interfaces.hpp
|
||||
src/steamclient/steamclient.cpp
|
||||
src/main.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)
|
||||
@@ -73,35 +81,46 @@ target_link_libraries(SmokeAPI_static PUBLIC SmokeAPI::common)
|
||||
|
||||
### Shared SmokeAPI
|
||||
|
||||
add_library(SmokeAPI SHARED ${SMOKE_API_SOURCES} ${VERSION_RESOURCE})
|
||||
add_library(SmokeAPI SHARED ${SMOKE_API_SOURCES})
|
||||
target_link_libraries(SmokeAPI PUBLIC SmokeAPI::common)
|
||||
set_target_properties(SmokeAPI PROPERTIES RUNTIME_OUTPUT_NAME ${SMOKEAPI_DLL})
|
||||
configure_version_resource(
|
||||
TARGET SmokeAPI
|
||||
FILE_DESC "Steamworks DLC unlocker"
|
||||
ORIG_NAME ${SMOKEAPI_DLL}
|
||||
)
|
||||
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")
|
||||
|
||||
configure_linker_exports(
|
||||
TARGET SmokeAPI
|
||||
HEADER_NAME "linker_exports_for_steam_api"
|
||||
FORWARDED_DLL "${STEAMAPI_DLL}_o"
|
||||
INPUT_SOURCES_DIR ""
|
||||
DLL_FILES_GLOB "${CMAKE_CURRENT_SOURCE_DIR}/res/steamworks/*/binaries/${STEAM_API_DLL}.dll"
|
||||
)
|
||||
|
||||
configure_linker_exports(
|
||||
TARGET SmokeAPI
|
||||
HEADER_NAME "linker_exports_for_version"
|
||||
FORWARDED_DLL "C:/Windows/System32/version.dll"
|
||||
INPUT_SOURCES_DIR ""
|
||||
DLL_FILES_GLOB "C:/Windows/System32/version.dll"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user