Skip to content

Commit

Permalink
Update cs2-plugify
Browse files Browse the repository at this point in the history
  • Loading branch information
qubka committed Sep 3, 2024
1 parent 396dcb0 commit 89346f0
Show file tree
Hide file tree
Showing 11 changed files with 104 additions and 222 deletions.
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
[submodule "external/plugify"]
path = external/plugify
url = https://github.com/untrustedmodders/plugify
[submodule "external/hl2sdk-cs2"]
path = external/hl2sdk-cs2
url = https://github.com/Wend4r/hl2sdk.git
[submodule "external/sourcesdk"]
path = external/sourcesdk
url = https://github.com/Wend4r/sourcesdk/
branch = cs2
149 changes: 98 additions & 51 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,26 @@ endif()

project(cs2-plugify VERSION 1.0.0.0 DESCRIPTION "Plugify CS2 Core" HOMEPAGE_URL "https://github.com/untrustedmodders/cs2-plugify" LANGUAGES C CXX ASM)

include("cmake/shared.cmake")
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

if(UNIX AND NOT APPLE)
set(LINUX TRUE)
endif()

if(WIN32 AND NOT MSVC)
message(FATAL "MSVC restricted.")
endif()

set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING
"Only do Release and Debug"
FORCE
)

set(PLUGIFY_PROJECT_VERSION "0" CACHE STRING "Set version name")

Expand All @@ -18,63 +37,79 @@ if(LINUX)
endif()
add_subdirectory(external/plugify)

set(SOURCE_FILES
src/mm_plugin.cpp
src/mm_plugin.h
src/mm_logger.cpp
src/mm_logger.h
external/hl2sdk-cs2/tier1/convar.cpp
add_subdirectory(external/sourcesdk)

# Sources
file(GLOB_RECURSE SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/*.cpp")
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES})

set(SOURCESDK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/sourcesdk)
set(METAMOD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/metamod-source)

target_include_directories(${PROJECT_NAME} PRIVATE
${SOURCESDK_DIR}
${SOURCESDK_DIR}/common
${SOURCESDK_DIR}/game/shared
${SOURCESDK_DIR}/game/server
${SOURCESDK_DIR}/public
${SOURCESDK_DIR}/public/engine
${SOURCESDK_DIR}/public/mathlib
${SOURCESDK_DIR}/public/tier0
${SOURCESDK_DIR}/public/tier1
${SOURCESDK_DIR}/public/entity2
${SOURCESDK_DIR}/public/game/server
${SOURCESDK_DIR}/public/entity2

${METAMOD_DIR}/core
${METAMOD_DIR}/core/sourcehook
)
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "plugify")

if(LINUX)
# memoverride.cpp is not usable on CMake Windows, because CMake default link libraries always link ucrt.lib
set(SOURCE_FILES
${SOURCE_FILES}
external/hl2sdk-cs2/public/tier0/memoverride.cpp
)
endif()
target_compile_definitions(${PROJECT_NAME} PRIVATE
PLUGIFY_PROJECT_NAME="${PROJECT_NAME}"
PLUGIFY_PROJECT_DESCRIPTION="${CMAKE_PROJECT_DESCRIPTION}"
PLUGIFY_PROJECT_HOMEPAGE_URL="${CMAKE_PROJECT_HOMEPAGE_URL}"
PLUGIFY_PROJECT_VERSION="${PLUGIFY_PROJECT_VERSION}"
META_IS_SOURCE2)

## Generate protobuf source & headers
if(LINUX)
set(PROTOC_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/external/hl2sdk-cs2/devtools/bin/linux/protoc)
target_compile_definitions(${PROJECT_NAME} PRIVATE
META_IS_SOURCE2
_LINUX
POSIX
LINUX
GNUC
COMPILER_GCC
PLATFORM_64BITS
_GLIBCXX_USE_CXX11_ABI=0
)
elseif(WIN32)
set(PROTOC_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/external/hl2sdk-cs2/devtools/bin/protoc.exe)
target_compile_definitions(${PROJECT_NAME} PRIVATE
META_IS_SOURCE2
COMPILER_MSVC
COMPILER_MSVC64
_WIN32
_WINDOWS
_ALLOW_KEYWORD_MACROS
__STDC_LIMIT_MACROS
_CRT_SECURE_NO_WARNINGS=1
_CRT_SECURE_NO_DEPRECATE=1
_CRT_NONSTDC_NO_DEPRECATE=1
)
#set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()

add_custom_command(
OUTPUT protobuf_output_stamp
COMMAND ${PROTOC_EXECUTABLE} --proto_path=thirdparty/protobuf-3.21.8/src --proto_path=common --cpp_out=common common/network_connection.proto
COMMENT "Generating protobuf file"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/external/hl2sdk-cs2
VERBATIM
)

SET(SOURCE_FILES ${SOURCE_FILES} protobuf_output_stamp)

# Sources
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${NATIVES_SOURCES} ${CONVERSIONS_SOURCES} ${CONVERSIONS_HEADERS})

target_include_directories(
${PROJECT_NAME}
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR}/src/core/cs2_sdk
${CMAKE_BINARY_DIR}/exports
)
set(PLUGIFY_LINK_LIBRARIES plugify::plugify sourcesdk miniz)

if(LINUX)
include("cmake/linux.cmake")
elseif(WIN32)
include("cmake/windows.cmake")
if(WIN32)
set(PLUGIFY_LINK_LIBRARIES ${PLUGIFY_LINK_LIBRARIES} winhttp.lib)
else()
set(PLUGIFY_LINK_LIBRARIES ${PLUGIFY_LINK_LIBRARIES} curl)
endif()

set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "plugify")

target_compile_definitions(${PROJECT_NAME} PRIVATE
PLUGIFY_PROJECT_NAME="${PROJECT_NAME}"
PLUGIFY_PROJECT_DESCRIPTION="${CMAKE_PROJECT_DESCRIPTION}"
PLUGIFY_PROJECT_HOMEPAGE_URL="${CMAKE_PROJECT_HOMEPAGE_URL}"
PLUGIFY_PROJECT_VERSION="${PLUGIFY_PROJECT_VERSION}")
if(NOT COMPILER_SUPPORTS_FORMAT)
set(PLUGIFY_LINK_LIBRARIES ${PLUGIFY_LINK_LIBRARIES} fmt::fmt-header-only)
endif()

# Libraries
target_link_libraries(${PROJECT_NAME} PRIVATE ${PLUGIFY_LINK_LIBRARIES})
Expand All @@ -90,7 +125,19 @@ if(LINUX)
else()
set(PLUGIFY_PREFER_OWN_SYMBOLS "false")
endif()

configure_file(
${CMAKE_SOURCE_DIR}/plugify.pconfig.in
${CMAKE_BINARY_DIR}/plugify.pconfig
)

if (WIN32)
set(PLUGIFY_VDF_PLATFORM "win64")
else()
set(PLUGIFY_VDF_PLATFORM "linuxsteamrt64")
endif()

configure_file(
${CMAKE_SOURCE_DIR}/plugify.pconfig.in
${CMAKE_BINARY_DIR}/plugify.pconfig
)
${CMAKE_SOURCE_DIR}/plugify.vdf.in
${CMAKE_BINARY_DIR}/addons/metamod/plugify.vdf
)
64 changes: 0 additions & 64 deletions cmake/linux.cmake

This file was deleted.

10 changes: 0 additions & 10 deletions cmake/metamod/configure_metamod.cmake

This file was deleted.

48 changes: 0 additions & 48 deletions cmake/shared.cmake

This file was deleted.

43 changes: 0 additions & 43 deletions cmake/windows.cmake

This file was deleted.

1 change: 0 additions & 1 deletion external/hl2sdk-cs2
Submodule hl2sdk-cs2 deleted from a5d9f8
2 changes: 1 addition & 1 deletion external/plugify
1 change: 1 addition & 0 deletions external/sourcesdk
Submodule sourcesdk added at a26af5
File renamed without changes.

0 comments on commit 89346f0

Please sign in to comment.