diff --git a/CMakeLists.txt b/CMakeLists.txt index b8abe511d42f3bbbf01fd80f525f0978cbb573ca..346fd8db034e245b6db2cd55738ef5bb79383803 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,10 +58,6 @@ else() set(SRB2_SYSTEM_BITS 32) endif() -if(MSVC) - message(WARNING "!! MSVC BUILDS OF SRB2 CANNOT PLAY MULTIPLAYER !! You're more than welcome to try and fix this!") -endif() - # OS macros if (UNIX) add_definitions(-DUNIXCOMMON) @@ -85,6 +81,9 @@ if(${CMAKE_SYSTEM} MATCHES "Darwin") endif() endif() +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") +set(CMAKE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") + # Set EXE names so the assets CMakeLists can refer to its target set(SRB2_SDL2_EXE_NAME srb2) set(SRB2_WIN_EXE_NAME srb2dd) @@ -98,7 +97,9 @@ add_subdirectory(assets) ## config.h generation set(GIT_EXECUTABLE "git" CACHE FILEPATH "Path to git binary") include(GitUtilities) -git_describe(SRB2_COMP_REVISION "${CMAKE_CURRENT_SOURCE_DIR}") +git_describe(SRB2_GIT_DESCRIBE "${CMAKE_SOURCE_DIR}") +git_current_branch(SRB2_GIT_BRANCH "${CMAKE_SOURCE_DIR}") +set(SRB2_COMP_REVISION "${SRB2_GIT_DESCRIBE}-<${SRB2_GIT_BRANCH}>") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/src/config.h) ##### PACKAGE CONFIGURATION ##### diff --git a/cmake/Modules/GitUtilities.cmake b/cmake/Modules/GitUtilities.cmake index de4015b0d1e45be3afd1c858c373db4b3d36277c..683cf9b6b505e788bd3139bf0513b433a3190a2e 100644 --- a/cmake/Modules/GitUtilities.cmake +++ b/cmake/Modules/GitUtilities.cmake @@ -14,9 +14,18 @@ function(git_describe variable path) ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE ) - #if(NOT result EQUAL 0) - # set(${variable} "GITERROR-${result}-NOTFOUND" CACHE STRING "revision" FORCE) - #endif() set(${variable} "${output}" PARENT_SCOPE) endfunction() + +function(git_current_branch variable path) + execute_process(COMMAND ${GIT_EXECUTABLE} "symbolic-ref" "--short" "HEAD" + WORKING_DIRECTORY "${path}" + RESULT_VARIABLE result + OUTPUT_VARIABLE output + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + set(${variable} "${output}" PARENT_SCOPE) +endfunction() \ No newline at end of file diff --git a/src/config.h.in b/src/config.h.in index 7c5b299cfe375b67453121b30f5063c4d70f1e88..53747266c70bc9c4679c23b2a09a61e695c0cedd 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -12,6 +12,8 @@ #define ASSET_HASH_PATCH_DTA "${SRB2_ASSET_patch.dta_HASH}" #define SRB2_COMP_REVISION "${SRB2_COMP_REVISION}" +#define SRB2_GIT_DESCRIBE "${SRB2_GIT_DESCRIBE}" +#define SRB2_GIT_BRANCH "${SRB2_GIT_BRANCH}" #define CMAKE_ASSETS_DIR "${CMAKE_SOURCE_DIR}/assets"