From a1bcfe5f35373a775a352136e9338e728be7ee90 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Thu, 7 Mar 2024 13:56:23 +1100 Subject: [PATCH 1/4] update sbinit scripts --- {scripts => attic}/gitlab-ci/assemble.sh | 0 {scripts => attic}/gitlab-ci/linux/build.sh | 0 .../gitlab-ci/linux/run-client.sh | 0 .../gitlab-ci/linux/run-server.sh | 0 .../gitlab-ci/linux/sbinit.config | 0 {scripts => attic}/gitlab-ci/linux/test.sh | 0 .../macos/Starbound.app/Contents/Info.plist | 0 .../Contents/Resources/starbound.icns | Bin {scripts => attic}/gitlab-ci/macos/build.sh | 0 .../gitlab-ci/macos/run-server.sh | 0 .../gitlab-ci/macos/sbinit.config | 0 {scripts => attic}/gitlab-ci/macos/test.sh | 0 .../gitlab-ci/repack_steamfree.sh | 0 .../gitlab-ci/windows/build.bat | 0 .../gitlab-ci/windows/sbinit.config | 0 {scripts => attic}/gitlab-ci/windows/test.bat | 0 scripts/ci/linux/build.sh | 22 ++++++++++++ scripts/ci/linux/run-client.sh | 5 +++ scripts/ci/linux/run-server.sh | 22 ++++++++++++ scripts/ci/linux/sbinit.config | 9 +++++ scripts/ci/linux/test.sh | 8 +++++ .../macos/Starbound.app/Contents/Info.plist | 27 +++++++++++++++ .../Contents/Resources/starbound.icns | Bin 0 -> 47576 bytes scripts/ci/macos/build.sh | 25 ++++++++++++++ scripts/ci/macos/run-server.sh | 11 ++++++ scripts/ci/macos/sbinit.config | 9 +++++ scripts/ci/macos/test.sh | 9 +++++ scripts/ci/windows/build.bat | 32 ++++++++++++++++++ scripts/ci/windows/sbinit.config | 9 +++++ scripts/ci/windows/test.bat | 8 +++++ 30 files changed, 196 insertions(+) rename {scripts => attic}/gitlab-ci/assemble.sh (100%) rename {scripts => attic}/gitlab-ci/linux/build.sh (100%) rename {scripts => attic}/gitlab-ci/linux/run-client.sh (100%) rename {scripts => attic}/gitlab-ci/linux/run-server.sh (100%) rename {scripts => attic}/gitlab-ci/linux/sbinit.config (100%) rename {scripts => attic}/gitlab-ci/linux/test.sh (100%) rename {scripts => attic}/gitlab-ci/macos/Starbound.app/Contents/Info.plist (100%) rename {scripts => attic}/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns (100%) rename {scripts => attic}/gitlab-ci/macos/build.sh (100%) rename {scripts => attic}/gitlab-ci/macos/run-server.sh (100%) rename {scripts => attic}/gitlab-ci/macos/sbinit.config (100%) rename {scripts => attic}/gitlab-ci/macos/test.sh (100%) rename {scripts => attic}/gitlab-ci/repack_steamfree.sh (100%) rename {scripts => attic}/gitlab-ci/windows/build.bat (100%) rename {scripts => attic}/gitlab-ci/windows/sbinit.config (100%) rename {scripts => attic}/gitlab-ci/windows/test.bat (100%) create mode 100644 scripts/ci/linux/build.sh create mode 100644 scripts/ci/linux/run-client.sh create mode 100644 scripts/ci/linux/run-server.sh create mode 100644 scripts/ci/linux/sbinit.config create mode 100644 scripts/ci/linux/test.sh create mode 100644 scripts/ci/macos/Starbound.app/Contents/Info.plist create mode 100644 scripts/ci/macos/Starbound.app/Contents/Resources/starbound.icns create mode 100644 scripts/ci/macos/build.sh create mode 100644 scripts/ci/macos/run-server.sh create mode 100644 scripts/ci/macos/sbinit.config create mode 100644 scripts/ci/macos/test.sh create mode 100644 scripts/ci/windows/build.bat create mode 100644 scripts/ci/windows/sbinit.config create mode 100644 scripts/ci/windows/test.bat diff --git a/scripts/gitlab-ci/assemble.sh b/attic/gitlab-ci/assemble.sh similarity index 100% rename from scripts/gitlab-ci/assemble.sh rename to attic/gitlab-ci/assemble.sh diff --git a/scripts/gitlab-ci/linux/build.sh b/attic/gitlab-ci/linux/build.sh similarity index 100% rename from scripts/gitlab-ci/linux/build.sh rename to attic/gitlab-ci/linux/build.sh diff --git a/scripts/gitlab-ci/linux/run-client.sh b/attic/gitlab-ci/linux/run-client.sh similarity index 100% rename from scripts/gitlab-ci/linux/run-client.sh rename to attic/gitlab-ci/linux/run-client.sh diff --git a/scripts/gitlab-ci/linux/run-server.sh b/attic/gitlab-ci/linux/run-server.sh similarity index 100% rename from scripts/gitlab-ci/linux/run-server.sh rename to attic/gitlab-ci/linux/run-server.sh diff --git a/scripts/gitlab-ci/linux/sbinit.config b/attic/gitlab-ci/linux/sbinit.config similarity index 100% rename from scripts/gitlab-ci/linux/sbinit.config rename to attic/gitlab-ci/linux/sbinit.config diff --git a/scripts/gitlab-ci/linux/test.sh b/attic/gitlab-ci/linux/test.sh similarity index 100% rename from scripts/gitlab-ci/linux/test.sh rename to attic/gitlab-ci/linux/test.sh diff --git a/scripts/gitlab-ci/macos/Starbound.app/Contents/Info.plist b/attic/gitlab-ci/macos/Starbound.app/Contents/Info.plist similarity index 100% rename from scripts/gitlab-ci/macos/Starbound.app/Contents/Info.plist rename to attic/gitlab-ci/macos/Starbound.app/Contents/Info.plist diff --git a/scripts/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns b/attic/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns similarity index 100% rename from scripts/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns rename to attic/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns diff --git a/scripts/gitlab-ci/macos/build.sh b/attic/gitlab-ci/macos/build.sh similarity index 100% rename from scripts/gitlab-ci/macos/build.sh rename to attic/gitlab-ci/macos/build.sh diff --git a/scripts/gitlab-ci/macos/run-server.sh b/attic/gitlab-ci/macos/run-server.sh similarity index 100% rename from scripts/gitlab-ci/macos/run-server.sh rename to attic/gitlab-ci/macos/run-server.sh diff --git a/scripts/gitlab-ci/macos/sbinit.config b/attic/gitlab-ci/macos/sbinit.config similarity index 100% rename from scripts/gitlab-ci/macos/sbinit.config rename to attic/gitlab-ci/macos/sbinit.config diff --git a/scripts/gitlab-ci/macos/test.sh b/attic/gitlab-ci/macos/test.sh similarity index 100% rename from scripts/gitlab-ci/macos/test.sh rename to attic/gitlab-ci/macos/test.sh diff --git a/scripts/gitlab-ci/repack_steamfree.sh b/attic/gitlab-ci/repack_steamfree.sh similarity index 100% rename from scripts/gitlab-ci/repack_steamfree.sh rename to attic/gitlab-ci/repack_steamfree.sh diff --git a/scripts/gitlab-ci/windows/build.bat b/attic/gitlab-ci/windows/build.bat similarity index 100% rename from scripts/gitlab-ci/windows/build.bat rename to attic/gitlab-ci/windows/build.bat diff --git a/scripts/gitlab-ci/windows/sbinit.config b/attic/gitlab-ci/windows/sbinit.config similarity index 100% rename from scripts/gitlab-ci/windows/sbinit.config rename to attic/gitlab-ci/windows/sbinit.config diff --git a/scripts/gitlab-ci/windows/test.bat b/attic/gitlab-ci/windows/test.bat similarity index 100% rename from scripts/gitlab-ci/windows/test.bat rename to attic/gitlab-ci/windows/test.bat diff --git a/scripts/ci/linux/build.sh b/scripts/ci/linux/build.sh new file mode 100644 index 0000000..b70f6de --- /dev/null +++ b/scripts/ci/linux/build.sh @@ -0,0 +1,22 @@ +#!/bin/sh -e + +mkdir -p build + +cd build +rm -f CMakeCache.txt + +cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DSTAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX=ON \ + -DSTAR_USE_JEMALLOC=ON \ + -DSTAR_ENABLE_STEAM_INTEGRATION=ON \ + -DCMAKE_INCLUDE_PATH=../lib/linux/include \ + -DCMAKE_LIBRARY_PATH=../lib/linux \ + ../source + +make -j2 + +cd .. + +mv dist linux_binaries +cp lib/linux/*.so linux_binaries/ diff --git a/scripts/ci/linux/run-client.sh b/scripts/ci/linux/run-client.sh new file mode 100644 index 0000000..b7cb8ba --- /dev/null +++ b/scripts/ci/linux/run-client.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +cd "`dirname \"$0\"`" + +LD_LIBRARY_PATH="$LD_LIBRARY_PATH:./" ./starbound "$@" diff --git a/scripts/ci/linux/run-server.sh b/scripts/ci/linux/run-server.sh new file mode 100644 index 0000000..79b02fd --- /dev/null +++ b/scripts/ci/linux/run-server.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +cd "`dirname \"$0\"`" + +terms=" +x-terminal-emulator +konsole +gnome-terminal.wrapper +xfce4-terminal.wrapper +koi8rxterm +lxterm +uxterm +xterm" + +for term in $terms; do + $term -e ./starbound_server $@ + if [ $? -eq 0 ]; then + exit 0; + fi +done + +exit 1 diff --git a/scripts/ci/linux/sbinit.config b/scripts/ci/linux/sbinit.config new file mode 100644 index 0000000..45918a1 --- /dev/null +++ b/scripts/ci/linux/sbinit.config @@ -0,0 +1,9 @@ +{ + "assetDirectories" : [ + "./data/", + "../assets/", + "../mods/" + ], + + "storageDirectory" : "../storage/" +} \ No newline at end of file diff --git a/scripts/ci/linux/test.sh b/scripts/ci/linux/test.sh new file mode 100644 index 0000000..0bc8e7c --- /dev/null +++ b/scripts/ci/linux/test.sh @@ -0,0 +1,8 @@ +#!/bin/sh -e + +cd linux_binaries + +cp ../scripts/linux/sbinit.config . + +./core_tests +./game_tests diff --git a/scripts/ci/macos/Starbound.app/Contents/Info.plist b/scripts/ci/macos/Starbound.app/Contents/Info.plist new file mode 100644 index 0000000..44fcdca --- /dev/null +++ b/scripts/ci/macos/Starbound.app/Contents/Info.plist @@ -0,0 +1,27 @@ + + + + + CFBundleGetInfoString + Starbound + CFBundleExecutable + starbound + CFBundleIdentifier + com.chucklefish + CFBundleName + starbound + CFBundleIconFile + starbound + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + LSEnvironment + + MinimumSystemVersion + 10.9.0 + + SDL_FILESYSTEM_BASE_DIR_TYPE + parent + + diff --git a/scripts/ci/macos/Starbound.app/Contents/Resources/starbound.icns b/scripts/ci/macos/Starbound.app/Contents/Resources/starbound.icns new file mode 100644 index 0000000000000000000000000000000000000000..d6c93ff85d2932c79cc33718a6563c2ca33076ea GIT binary patch literal 47576 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 literal 0 HcmV?d00001 diff --git a/scripts/ci/macos/build.sh b/scripts/ci/macos/build.sh new file mode 100644 index 0000000..7517843 --- /dev/null +++ b/scripts/ci/macos/build.sh @@ -0,0 +1,25 @@ +#!/bin/sh -e + +mkdir -p build +cd build + +rm -f CMakeCache.txt + +cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DSTAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX=ON \ + -DSTAR_USE_JEMALLOC=OFF \ + -DSTAR_ENABLE_STEAM_INTEGRATION=ON \ + -DSTAR_ENABLE_DISCORD_INTEGRATION=ON \ + -DCMAKE_INCLUDE_PATH=../lib/osx/include \ + -DCMAKE_LIBRARY_PATH=../lib/osx \ + -DCMAKE_OSX_SYSROOT=/ \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 \ + ../source + +make -j2 + +cd .. + +mv dist macos_binaries +cp lib/osx/*.dylib macos_binaries/ diff --git a/scripts/ci/macos/run-server.sh b/scripts/ci/macos/run-server.sh new file mode 100644 index 0000000..e043263 --- /dev/null +++ b/scripts/ci/macos/run-server.sh @@ -0,0 +1,11 @@ +#!/bin/sh -e + +cd "`dirname \"$0\"`" + +osascript < Date: Thu, 7 Mar 2024 14:16:30 +1100 Subject: [PATCH 2/4] ran cmake-format on CMakeLists.txt it all being uppercase was insane --- source/CMakeLists.txt | 835 ++++++++++++++++++++++-------------------- 1 file changed, 435 insertions(+), 400 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 139b4e8..bbc5dd9 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -1,448 +1,486 @@ -CMAKE_MINIMUM_REQUIRED (VERSION 3.16) +cmake_minimum_required(VERSION 3.27) # Find CCache -FIND_PROGRAM(CCACHE_PATH ccache) -IF (CCACHE_PATH) - SET (CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PATH}") - SET (CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PATH}") - MESSAGE (STATUS "Using CCache") -ELSE () - MESSAGE (STATUS "Not using CCache") -ENDIF () +find_program(CCACHE_PATH ccache) +if(CCACHE_PATH) + set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PATH}") + set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PATH}") + message(STATUS "Using CCache") +else() + message(STATUS "Not using CCache") +endif() +project(starbound) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake) -PROJECT (starbound) -SET (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake) - -SET (CMAKE_CONFIGURATION_TYPES Debug RelWithAsserts RelWithDebInfo Release) -SET (CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") -SET (CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS "" CACHE STRING "" FORCE) +set(CMAKE_CONFIGURATION_TYPES Debug RelWithAsserts RelWithDebInfo Release) +set(CMAKE_EXPORT_COMPILE_COMMANDS + ON + CACHE INTERNAL "") +set(CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS + "" + CACHE STRING "" FORCE) # Update the docstring on CMAKE_BUILD_TYPE to show what options we actually -# allow -# SET (CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING "Choose the type of build, options are: Debug RelWithAsserts RelWithDebInfo Release" FORCE) +# allow SET (CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING "Choose the +# type of build, options are: Debug RelWithAsserts RelWithDebInfo Release" +# FORCE) # Discover all the relevant environment / system information and place the # result in STAR_* cmake variables. # STAR_SOURCE_IDENTIFIER may be set to any string value -IF (NOT DEFINED STAR_SOURCE_IDENTIFIER) - INCLUDE (GetGitRevisionDescription) - GET_GIT_HEAD_REVISION (STAR_GIT_REFSPEC STAR_GIT_HASHVAR) - SET (STAR_SOURCE_IDENTIFIER "${STAR_GIT_HASHVAR}") -ENDIF () +if(NOT DEFINED STAR_SOURCE_IDENTIFIER) + include(GetGitRevisionDescription) + get_git_head_revision(STAR_GIT_REFSPEC STAR_GIT_HASHVAR) + set(STAR_SOURCE_IDENTIFIER "${STAR_GIT_HASHVAR}") +endif() # Architecture identifier, like i386, x86_64 or ppc -IF (NOT DEFINED STAR_ARCHITECTURE) - INCLUDE (TargetArch) - TARGET_ARCHITECTURE (STAR_ARCHITECTURE) -ENDIF () +if(NOT DEFINED STAR_ARCHITECTURE) + include(TargetArch) + target_architecture(STAR_ARCHITECTURE) +endif() # Either TRUE or FALSE -IF (NOT DEFINED STAR_LITTLE_ENDIAN) - INCLUDE (TestBigEndian) - TEST_BIG_ENDIAN (BIGENDIAN) - IF (NOT BIGENDIAN) - SET (STAR_LITTLE_ENDIAN TRUE) - ELSE () - SET (STAR_LITTLE_ENDIAN FALSE) - ENDIF () -ENDIF () +if(NOT DEFINED STAR_LITTLE_ENDIAN) + include(TestBigEndian) + test_big_endian(BIGENDIAN) + if(NOT BIGENDIAN) + set(STAR_LITTLE_ENDIAN TRUE) + else() + set(STAR_LITTLE_ENDIAN FALSE) + endif() +endif() # System name, like windows, macos, linux, freebsd, or (generic) unix -IF (NOT DEFINED STAR_SYSTEM) - IF (WIN32) - SET (STAR_SYSTEM "windows") - ELSEIF (APPLE AND ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") - SET (STAR_SYSTEM "macos") - ELSEIF (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - SET (STAR_SYSTEM "linux") - ELSEIF (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - SET (STAR_SYSTEM "freebsd") - ELSEIF (UNIX) - SET (STAR_SYSTEM "unix") - ELSE () - SET (STAR_SYSTEM "unknown") - ENDIF () -ENDIF () +if(NOT DEFINED STAR_SYSTEM) + if(WIN32) + set(STAR_SYSTEM "windows") + elseif(APPLE AND ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") + set(STAR_SYSTEM "macos") + elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + set(STAR_SYSTEM "linux") + elseif(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + set(STAR_SYSTEM "freebsd") + elseif(UNIX) + set(STAR_SYSTEM "unix") + else() + set(STAR_SYSTEM "unknown") + endif() +endif() -IF (NOT DEFINED STAR_SYSTEM_FAMILY) - IF (WIN32) - SET (STAR_SYSTEM_FAMILY "windows") - ELSEIF (UNIX) - SET (STAR_SYSTEM_FAMILY "unix") - ELSE () - SET (STAR_SYSTEM_FAMILY "unknown") - ENDIF () -ENDIF () +if(NOT DEFINED STAR_SYSTEM_FAMILY) + if(WIN32) + set(STAR_SYSTEM_FAMILY "windows") + elseif(UNIX) + set(STAR_SYSTEM_FAMILY "unix") + else() + set(STAR_SYSTEM_FAMILY "unknown") + endif() +endif() # C/C++ compiler ID, like clang, gnu, or msvc -IF (NOT DEFINED STAR_COMPILER) - IF (NOT CMAKE_C_COMPILER_ID STREQUAL CMAKE_CXX_COMPILER_ID) - MESSAGE (FATAL_ERROR "C and C++ compiler id do not match, unsupported build configuration") - ENDIF () +if(NOT DEFINED STAR_COMPILER) + if(NOT CMAKE_C_COMPILER_ID STREQUAL CMAKE_CXX_COMPILER_ID) + message( + FATAL_ERROR + "C and C++ compiler id do not match, unsupported build configuration") + endif() - IF (CMAKE_C_COMPILER_ID STREQUAL "Clang") - SET (STAR_COMPILER "clang") - ELSEIF (CMAKE_COMPILER_IS_GNUC) - SET (STAR_COMPILER "gnu") - ELSEIF (MSVC) - SET (STAR_COMPILER "msvc") - ELSE () - STRING (TOLOWER "${CMAKE_C_COMPILER_ID}" STAR_COMPILER) - ENDIF () -ENDIF () + if(CMAKE_C_COMPILER_ID STREQUAL "Clang") + set(STAR_COMPILER "clang") + elseif(CMAKE_COMPILER_IS_GNUC) + set(STAR_COMPILER "gnu") + elseif(MSVC) + set(STAR_COMPILER "msvc") + else() + string(TOLOWER "${CMAKE_C_COMPILER_ID}" STAR_COMPILER) + endif() +endif() # Enable OPTIONs based on the discovered system / environment... -IF (STAR_COMPILER STREQUAL "gnu") - OPTION (STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX "Statically link libgcc and libstdc++" OFF) - OPTION (STAR_ENABLE_GCC_PROFILING "Enable gcc/g++ profiling via the -pg flag" OFF) - OPTION (STAR_ENABLE_GLIBCXX_DEBUG "Enable _GLIBCXX_DEBUG for g++" OFF) -ENDIF () +if(STAR_COMPILER STREQUAL "gnu") + option(STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX + "Statically link libgcc and libstdc++" OFF) + option(STAR_ENABLE_GCC_PROFILING "Enable gcc/g++ profiling via the -pg flag" + OFF) + option(STAR_ENABLE_GLIBCXX_DEBUG "Enable _GLIBCXX_DEBUG for g++" OFF) +endif() -IF (STAR_COMPILER STREQUAL "msvc") - OPTION (STAR_ENABLE_STATIC_MSVC_RUNTIME "Statically link with the CRT" OFF) -ENDIF () +if(STAR_COMPILER STREQUAL "msvc") + option(STAR_ENABLE_STATIC_MSVC_RUNTIME "Statically link with the CRT" OFF) +endif() -OPTION (STAR_BUILD_GUI "Build GUI utilities and Client" ON) +option(STAR_BUILD_GUI "Build GUI utilities and Client" ON) -IF (STAR_BUILD_GUI) - OPTION (STAR_BUILD_QT_TOOLS "Build GUI utilities that require Qt" OFF) - OPTION (STAR_ENABLE_STEAM_INTEGRATION "Use Steam platform services" OFF) - OPTION (STAR_ENABLE_DISCORD_INTEGRATION "Use Discord platform services" OFF) -ENDIF () +if(STAR_BUILD_GUI) + option(STAR_BUILD_QT_TOOLS "Build GUI utilities that require Qt" OFF) + option(STAR_ENABLE_STEAM_INTEGRATION "Use Steam platform services" OFF) + option(STAR_ENABLE_DISCORD_INTEGRATION "Use Discord platform services" OFF) +endif() -OPTION (STAR_LUA_APICHECK "Use lua api checks" OFF) -OPTION (STAR_USE_JEMALLOC "Use jemalloc allocators" OFF) +option(STAR_LUA_APICHECK "Use lua api checks" OFF) +option(STAR_USE_JEMALLOC "Use jemalloc allocators" OFF) # Report all the discovered system / environment settings and all options. -MESSAGE (STATUS "Source ID: ${STAR_SOURCE_IDENTIFIER}") -MESSAGE (STATUS "Architecture: ${STAR_ARCHITECTURE}") -MESSAGE (STATUS "Little Endian: ${STAR_LITTLE_ENDIAN}") -MESSAGE (STATUS "System: ${STAR_SYSTEM}") -MESSAGE (STATUS "System family: ${STAR_SYSTEM_FAMILY}") -MESSAGE (STATUS "C/C++ compiler: ${STAR_COMPILER}") +message(STATUS "Source ID: ${STAR_SOURCE_IDENTIFIER}") +message(STATUS "Architecture: ${STAR_ARCHITECTURE}") +message(STATUS "Little Endian: ${STAR_LITTLE_ENDIAN}") +message(STATUS "System: ${STAR_SYSTEM}") +message(STATUS "System family: ${STAR_SYSTEM_FAMILY}") +message(STATUS "C/C++ compiler: ${STAR_COMPILER}") -IF (DEFINED STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX) - MESSAGE (STATUS "Statically linking to libgcc / libstdc++: ${STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX}") -ENDIF () +if(DEFINED STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX) + message( + STATUS + "Statically linking to libgcc / libstdc++: ${STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX}" + ) +endif() -IF (DEFINED STAR_ENABLE_STATIC_MSVC_RUNTIME) - MESSAGE (STATUS "Statically linking to CRT: ${STAR_ENABLE_STATIC_MSVC_RUNTIME}") -ENDIF () +if(DEFINED STAR_ENABLE_STATIC_MSVC_RUNTIME) + message( + STATUS "Statically linking to CRT: ${STAR_ENABLE_STATIC_MSVC_RUNTIME}") +endif() -IF (DEFINED STAR_ENABLE_GLIBCXX_DEBUG) - MESSAGE (STATUS "Enabling _GLIBCXX_DEBUG: ${STAR_ENABLE_GLIBCXX_DEBUG}") -ENDIF () +if(DEFINED STAR_ENABLE_GLIBCXX_DEBUG) + message(STATUS "Enabling _GLIBCXX_DEBUG: ${STAR_ENABLE_GLIBCXX_DEBUG}") +endif() -MESSAGE (STATUS "Building GUI: ${STAR_BUILD_GUI}") +message(STATUS "Building GUI: ${STAR_BUILD_GUI}") -IF (DEFINED STAR_BUILD_QT_TOOLS) - MESSAGE (STATUS "Building Qt tools: ${STAR_BUILD_QT_TOOLS}") -ENDIF () +if(DEFINED STAR_BUILD_QT_TOOLS) + message(STATUS "Building Qt tools: ${STAR_BUILD_QT_TOOLS}") +endif() -IF (DEFINED STAR_ENABLE_STEAM_INTEGRATION) - MESSAGE (STATUS "Using Steam platform services: ${STAR_ENABLE_STEAM_INTEGRATION}") -ENDIF () +if(DEFINED STAR_ENABLE_STEAM_INTEGRATION) + message( + STATUS "Using Steam platform services: ${STAR_ENABLE_STEAM_INTEGRATION}") +endif() -IF (DEFINED STAR_ENABLE_DISCORD_INTEGRATION) - MESSAGE (STATUS "Using Discord platform services: ${STAR_ENABLE_DISCORD_INTEGRATION}") -ENDIF () +if(DEFINED STAR_ENABLE_DISCORD_INTEGRATION) + message( + STATUS "Using Discord platform services: ${STAR_ENABLE_DISCORD_INTEGRATION}" + ) +endif() -MESSAGE (STATUS "Using Lua API checks: ${STAR_LUA_APICHECK}") -MESSAGE (STATUS "Using jemalloc: ${STAR_USE_JEMALLOC}") +message(STATUS "Using Lua API checks: ${STAR_LUA_APICHECK}") +message(STATUS "Using jemalloc: ${STAR_USE_JEMALLOC}") # Set C defines and cmake variables based on the build settings we have now # determined... # Set a cmake variable to true and define a corresponding C/C++ definition -FUNCTION (SET_FLAG flagValue) - SET (${flagValue} TRUE PARENT_SCOPE) - ADD_DEFINITIONS (-D${flagValue}) -ENDFUNCTION () +function(SET_FLAG flagValue) + set(${flagValue} + TRUE + PARENT_SCOPE) + add_definitions(-D${flagValue}) +endfunction() -IF (STAR_LITTLE_ENDIAN) - SET_FLAG (STAR_LITTLE_ENDIAN) -ELSEIF () - SET_FLAG (STAR_BIG_ENDIAN) -ENDIF () +if(STAR_LITTLE_ENDIAN) + set_flag(STAR_LITTLE_ENDIAN) +elseif() + set_flag(STAR_BIG_ENDIAN) +endif() -IF (STAR_ARCHITECTURE STREQUAL "i386") - SET_FLAG (STAR_ARCHITECTURE_I386) -ELSEIF (STAR_ARCHITECTURE STREQUAL "x86_64") - SET_FLAG (STAR_ARCHITECTURE_X86_64) -ENDIF () +if(STAR_ARCHITECTURE STREQUAL "i386") + set_flag(STAR_ARCHITECTURE_I386) +elseif(STAR_ARCHITECTURE STREQUAL "x86_64") + set_flag(STAR_ARCHITECTURE_X86_64) +endif() -IF (STAR_SYSTEM STREQUAL "windows") - SET_FLAG (STAR_SYSTEM_WINDOWS) -ELSEIF (STAR_SYSTEM STREQUAL "macos") - SET_FLAG (STAR_SYSTEM_MACOS) -ELSEIF (STAR_SYSTEM STREQUAL "linux") - SET_FLAG (STAR_SYSTEM_LINUX) -ELSEIF (STAR_SYSTEM STREQUAL "freebsd") - SET_FLAG (STAR_SYSTEM_FREEBSD) -ENDIF () +if(STAR_SYSTEM STREQUAL "windows") + set_flag(STAR_SYSTEM_WINDOWS) +elseif(STAR_SYSTEM STREQUAL "macos") + set_flag(STAR_SYSTEM_MACOS) +elseif(STAR_SYSTEM STREQUAL "linux") + set_flag(STAR_SYSTEM_LINUX) +elseif(STAR_SYSTEM STREQUAL "freebsd") + set_flag(STAR_SYSTEM_FREEBSD) +endif() -IF (STAR_SYSTEM_FAMILY STREQUAL "windows") - SET_FLAG (STAR_SYSTEM_FAMILY_WINDOWS) -ELSEIF (STAR_SYSTEM_FAMILY STREQUAL "unix") - SET_FLAG (STAR_SYSTEM_FAMILY_UNIX) -ENDIF () +if(STAR_SYSTEM_FAMILY STREQUAL "windows") + set_flag(STAR_SYSTEM_FAMILY_WINDOWS) +elseif(STAR_SYSTEM_FAMILY STREQUAL "unix") + set_flag(STAR_SYSTEM_FAMILY_UNIX) +endif() -IF (STAR_COMPILER STREQUAL "gnu") - SET_FLAG (STAR_COMPILER_GNU) -ELSEIF (STAR_COMPILER STREQUAL "clang") - SET_FLAG (STAR_COMPILER_CLANG) -ELSEIF (STAR_COMPILER STREQUAL "msvc") - SET_FLAG (STAR_COMPILER_MSVC) -ENDIF () +if(STAR_COMPILER STREQUAL "gnu") + set_flag(STAR_COMPILER_GNU) +elseif(STAR_COMPILER STREQUAL "clang") + set_flag(STAR_COMPILER_CLANG) +elseif(STAR_COMPILER STREQUAL "msvc") + set_flag(STAR_COMPILER_MSVC) +endif() -IF (STAR_LUA_APICHECK) - ADD_DEFINITIONS (-DLUA_USE_APICHECK) -ENDIF () +if(STAR_LUA_APICHECK) + add_definitions(-DLUA_USE_APICHECK) +endif() -IF (STAR_SYSTEM_WINDOWS) +if(STAR_SYSTEM_WINDOWS) # LUA_USE_WINDOWS is automatically defined in luaconf if _WIN32 is defined -ELSEIF (STAR_SYSTEM_MACOS) - ADD_DEFINITIONS(-DLUA_USE_MACOSX) -ELSEIF (STAR_SYSTEM_LINUX) - ADD_DEFINITIONS(-DLUA_USE_LINUX) -ELSEIF (STAR_SYSTEM_FAMILY_UNIX) - ADD_DEFINITIONS(-DLUA_USE_POSIX) -ENDIF () +elseif(STAR_SYSTEM_MACOS) + add_definitions(-DLUA_USE_MACOSX) +elseif(STAR_SYSTEM_LINUX) + add_definitions(-DLUA_USE_LINUX) +elseif(STAR_SYSTEM_FAMILY_UNIX) + add_definitions(-DLUA_USE_POSIX) +endif() -IF (STAR_ENABLE_STEAM_INTEGRATION) - ADD_DEFINITIONS (-DSTAR_ENABLE_STEAM_INTEGRATION) -ENDIF () +if(STAR_ENABLE_STEAM_INTEGRATION) + add_definitions(-DSTAR_ENABLE_STEAM_INTEGRATION) +endif() -IF (STAR_ENABLE_DISCORD_INTEGRATION) - ADD_DEFINITIONS (-DSTAR_ENABLE_DISCORD_INTEGRATION) -ENDIF () +if(STAR_ENABLE_DISCORD_INTEGRATION) + add_definitions(-DSTAR_ENABLE_DISCORD_INTEGRATION) +endif() -IF (STAR_USE_JEMALLOC) - ADD_DEFINITIONS (-DSTAR_USE_JEMALLOC) -ENDIF () +if(STAR_USE_JEMALLOC) + add_definitions(-DSTAR_USE_JEMALLOC) +endif() # Set C/C++ compiler flags based on build environment... -IF (STAR_COMPILER_GNU) - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic -Wall -Wextra -Wno-unused -Wno-implicit-fallthrough -no-pie") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -rdynamic -Wall -Wextra -Wno-unused -Wno-implicit-fallthrough -no-pie") +if(STAR_COMPILER_GNU) + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} -rdynamic -Wall -Wextra -Wno-unused -Wno-implicit-fallthrough -no-pie" + ) + set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -std=c++17 -rdynamic -Wall -Wextra -Wno-unused -Wno-implicit-fallthrough -no-pie" + ) - IF (STAR_SYSTEM_FAMILY_WINDOWS) - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthreads") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthreads") - ELSE () - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread -D_REENTRANT") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -D_REENTRANT") - ENDIF () + if(STAR_SYSTEM_FAMILY_WINDOWS) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthreads") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mthreads") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread -D_REENTRANT") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -D_REENTRANT") + endif() - IF (STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX) - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++") - ENDIF () + if(STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++") + endif() - IF (STAR_ENABLE_GCC_PROFILING) - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pg") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg") - ENDIF () + if(STAR_ENABLE_GCC_PROFILING) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pg") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg") + endif() - SET (CMAKE_C_FLAGS_DEBUG "-g -Og") - SET (CMAKE_CXX_FLAGS_DEBUG "-g -Og") + set(CMAKE_C_FLAGS_DEBUG "-g -Og") + set(CMAKE_CXX_FLAGS_DEBUG "-g -Og") - SET (CMAKE_C_FLAGS_RELWITHASSERTS "-g -Ofast") - SET (CMAKE_CXX_FLAGS_RELWITHASSERTS "-g -Ofast") + set(CMAKE_C_FLAGS_RELWITHASSERTS "-g -Ofast") + set(CMAKE_CXX_FLAGS_RELWITHASSERTS "-g -Ofast") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-g -DNDEBUG -Ofast") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -DNDEBUG -Ofast") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g -DNDEBUG -Ofast") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -DNDEBUG -Ofast") - SET (CMAKE_C_FLAGS_RELEASE "-DNDEBUG -Ofast") - SET (CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Ofast") + set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -Ofast") + set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Ofast") -ELSEIF (STAR_COMPILER_CLANG) - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wuninitialized -Wno-parentheses-equality -Wno-deprecated-declarations") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -Wextra -Wuninitialized -Wno-parentheses-equality -Wno-deprecated-declarations") +elseif(STAR_COMPILER_CLANG) + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} -Wall -Wextra -Wuninitialized -Wno-parentheses-equality -Wno-deprecated-declarations" + ) + set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -Wextra -Wuninitialized -Wno-parentheses-equality -Wno-deprecated-declarations" + ) - IF (STAR_SYSTEM_MACOS) - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export_dynamic") - SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-export_dynamic") - SET (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++17") - SET (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - ELSEIF () - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread -D_REENTRANT") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -D_REENTRANT") - SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--export_dynamic") - SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--export_dynamic") - ENDIF () + if(STAR_SYSTEM_MACOS) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") + set(CMAKE_SHARED_LINKER_FLAGS + "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export_dynamic") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-export_dynamic") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++17") + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") + elseif() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread -D_REENTRANT") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -D_REENTRANT") + set(CMAKE_SHARED_LINKER_FLAGS + "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--export_dynamic") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--export_dynamic") + endif() - SET (CMAKE_C_FLAGS_DEBUG "-g") - SET (CMAKE_CXX_FLAGS_DEBUG "-g") + set(CMAKE_C_FLAGS_DEBUG "-g") + set(CMAKE_CXX_FLAGS_DEBUG "-g") - SET (CMAKE_C_FLAGS_RELWITHASSERTS "-g -Ofast") - SET (CMAKE_CXX_FLAGS_RELWITHASSERTS "-g -Ofast") + set(CMAKE_C_FLAGS_RELWITHASSERTS "-g -Ofast") + set(CMAKE_CXX_FLAGS_RELWITHASSERTS "-g -Ofast") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-g -DNDEBUG -Ofast") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -DNDEBUG -Ofast") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g -DNDEBUG -Ofast") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -DNDEBUG -Ofast") - SET (CMAKE_C_FLAGS_RELEASE "-DNDEBUG -Ofast") - SET (CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Ofast") + set(CMAKE_C_FLAGS_RELEASE "-DNDEBUG -Ofast") + set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Ofast") -ELSEIF (STAR_COMPILER_MSVC) - # /MP - Multi-processor building - # /EHsc - Enable normal C++ exception handling - # /bigobj - More sections in .obj files (Cannot build in Debug without it) - # /MT - Use multi-threaded statically linked C runtime library - # /GA - Optimize for windows application - # /Ox - Full optimization - # /fp:fast - Equivalent to -ffast-math - # /GS- - Disable buffers security check - # /Zi - Generates debugging information without Edit and Continue - # /Gy - Use function-level linking - # /wd4996 - Disable warnings about unsafe C functions - # /wd4351 - Disable warnings about new behavior of default initialization of - # arrays (which is the correct behavior anyway) +elseif(STAR_COMPILER_MSVC) + # /MP - Multi-processor building /EHsc - Enable normal C++ exception + # handling /bigobj - More sections in .obj files (Cannot build in Debug + # without it) /MT - Use multi-threaded statically linked C runtime + # library /GA - Optimize for windows application /Ox - Full + # optimization /fp:fast - Equivalent to -ffast-math /GS- - Disable buffers + # security check /Zi - Generates debugging information without Edit and + # Continue /Gy - Use function-level linking /wd4996 - Disable warnings + # about unsafe C functions /wd4351 - Disable warnings about new behavior of + # default initialization of arrays (which is the correct behavior anyway) # /wd4800 - Disable warnings about using non-bool as true or false (useless - # performance warning) - # /wd4244 - Disable warnings about type conversion loss of data, it's a nice - # warning, but it triggers on lots and lots of harmless things that no - # other compiler warns about, like passing an int as a float parameter - # /wd4305 - Disable warnings about truncation from double to float - # /wd4267 - Disable warnings about 64 - 32 bit truncation - # /wd4456 - Disable warnings about hiding previous local declaration - # /wd4503 - Silence warnings about MSVC generating a name so long it has to - # truncate it - # /wd4250 - Silence "XX inherits YY via dominance" - # /wd4624 - Silence implicitly deleted destructor warnings that show up when - # using unions in interesting ways. + # performance warning) /wd4244 - Disable warnings about type conversion loss + # of data, it's a nice warning, but it triggers on lots and lots of harmless + # things that no other compiler warns about, like passing an int as a float + # parameter /wd4305 - Disable warnings about truncation from double to float + # /wd4267 - Disable warnings about 64 - 32 bit truncation /wd4456 - Disable + # warnings about hiding previous local declaration /wd4503 - Silence warnings + # about MSVC generating a name so long it has to truncate it /wd4250 - + # Silence "XX inherits YY via dominance" /wd4624 - Silence implicitly deleted + # destructor warnings that show up when using unions in interesting ways. - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624") + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624" + ) + set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} /std:c++17 /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624" + ) - IF (STAR_ENABLE_STATIC_MSVC_RUNTIME) - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MT") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MT") - ENDIF () + if(STAR_ENABLE_STATIC_MSVC_RUNTIME) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MT") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MT") + endif() - SET (CMAKE_C_FLAGS_DEBUG "/Zi /Od") - SET (CMAKE_CXX_FLAGS_DEBUG "/Zi /Od") + set(CMAKE_C_FLAGS_DEBUG "/Zi /Od") + set(CMAKE_CXX_FLAGS_DEBUG "/Zi /Od") - SET (CMAKE_C_FLAGS_RELWITHASSERTS "/Ox /fp:fast /GA /GS- /Zi /Gy") - SET (CMAKE_CXX_FLAGS_RELWITHASSERTS "/Ox /fp:fast /GA /GS- /Zi /Gy") + set(CMAKE_C_FLAGS_RELWITHASSERTS "/Ox /fp:fast /GA /GS- /Zi /Gy") + set(CMAKE_CXX_FLAGS_RELWITHASSERTS "/Ox /fp:fast /GA /GS- /Zi /Gy") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO "/Ox /fp:fast /GA /GS- /Zi /Gy /DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Ox /fp:fast /GA /GS- /Zi /Gy /DNDEBUG") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "/Ox /fp:fast /GA /GS- /Zi /Gy /DNDEBUG") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Ox /fp:fast /GA /GS- /Zi /Gy /DNDEBUG") - SET (CMAKE_C_FLAGS_RELEASE "/Ox /fp:fast /GA /GS- /Gy /DNDEBUG") - SET (CMAKE_CXX_FLAGS_RELEASE "/Ox /fp:fast /GA /GS- /Gy /DNDEBUG") + set(CMAKE_C_FLAGS_RELEASE "/Ox /fp:fast /GA /GS- /Gy /DNDEBUG") + set(CMAKE_CXX_FLAGS_RELEASE "/Ox /fp:fast /GA /GS- /Gy /DNDEBUG") - IF (STAR_ARCHITECTURE_I386) + if(STAR_ARCHITECTURE_I386) # Assume all 32 bit target cpus support MMX, SSE, and SSE2 - SET (CMAKE_C_FLAGS_RELWITHASSERTS "${CMAKE_C_FLAGS_RELWITHASSERTS} /arch:SSE2") - SET (CMAKE_CXX_FLAGS_RELWITHASSERTS "${CMAKE_CXX_FLAGS_RELWITHASSERTS} /arch:SSE2") + set(CMAKE_C_FLAGS_RELWITHASSERTS + "${CMAKE_C_FLAGS_RELWITHASSERTS} /arch:SSE2") + set(CMAKE_CXX_FLAGS_RELWITHASSERTS + "${CMAKE_CXX_FLAGS_RELWITHASSERTS} /arch:SSE2") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /arch:SSE2") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /arch:SSE2") + set(CMAKE_C_FLAGS_RELWITHDEBINFO + "${CMAKE_C_FLAGS_RELWITHDEBINFO} /arch:SSE2") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO + "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /arch:SSE2") - SET (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /arch:SSE2") - SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE2") - ENDIF () + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /arch:SSE2") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE2") + endif() - ADD_DEFINITIONS (/DUNICODE) - ADD_DEFINITIONS (/D_UNICODE) - ADD_DEFINITIONS (/DNOMINMAX) + add_definitions(/DUNICODE) + add_definitions(/D_UNICODE) + add_definitions(/DNOMINMAX) -ELSE () - SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pthread -D_REENTRANT") - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -pthread -D_REENTRANT") +else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pthread -D_REENTRANT") + set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -pthread -D_REENTRANT") - SET (CMAKE_C_FLAGS_DEBUG "-g") - SET (CMAKE_CXX_FLAGS_DEBUG "-g") + set(CMAKE_C_FLAGS_DEBUG "-g") + set(CMAKE_CXX_FLAGS_DEBUG "-g") - SET (CMAKE_C_FLAGS_RELWITHASSERTS "-g -O2") - SET (CMAKE_CXX_FLAGS_RELWITHASSERTS "-g -O2") + set(CMAKE_C_FLAGS_RELWITHASSERTS "-g -O2") + set(CMAKE_CXX_FLAGS_RELWITHASSERTS "-g -O2") - SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-DNDEBUG -g -O2") - SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DNDEBUG -g -O2") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-DNDEBUG -g -O2") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-DNDEBUG -g -O2") - SET (CMAKE_C_FLAGS_RELEASE "$-DNDEBUG -O2") - SET (CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O2") + set(CMAKE_C_FLAGS_RELEASE "$-DNDEBUG -O2") + set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O2") -ENDIF () +endif() # Set other global build settings based on environment... -IF (STAR_SYSTEM_MACOS) - SET (CMAKE_MODULE_LINKER_FLAGS "-flat_namespace -undefined suppress") -ELSEIF (STAR_SYSTEM_WINDOWS) - SET (CMAKE_RC_COMPILER_INIT windres) +if(STAR_SYSTEM_MACOS) + set(CMAKE_MODULE_LINKER_FLAGS "-flat_namespace -undefined suppress") +elseif(STAR_SYSTEM_WINDOWS) + set(CMAKE_RC_COMPILER_INIT windres) - ENABLE_LANGUAGE (RC) - IF (STAR_COMPILER STREQUAL "msvc") - SET (CMAKE_RC_COMPILE_OBJECT " /fo ") - ELSE () - SET (CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") - ENDIF() -ENDIF () + enable_language(RC) + if(STAR_COMPILER STREQUAL "msvc") + set(CMAKE_RC_COMPILE_OBJECT " /fo ") + else() + set(CMAKE_RC_COMPILE_OBJECT + " -O coff -i -o ") + endif() +endif() -IF (STAR_COMPILER STREQUAL "msvc") - # /largeaddressaware - Make 32 bit build able to use 3GB addresses - # /OPT:REF - Eliminates functions and data that are never referenced - # /OPT:ICF - Performs identical COMDAT folding - # /PDBCompress - Hint to windows that it should compress the resulting PDB files - SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /largeaddressaware /OPT:REF /OPT:ICF /PDBCompress") +if(STAR_COMPILER STREQUAL "msvc") + # /largeaddressaware - Make 32 bit build able to use 3GB addresses /OPT:REF - + # Eliminates functions and data that are never referenced /OPT:ICF - Performs + # identical COMDAT folding /PDBCompress - Hint to windows that it should + # compress the resulting PDB files + set(CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS} /largeaddressaware /OPT:REF /OPT:ICF /PDBCompress" + ) # Make sure RelWithAsserts has debugging enabled - SET (CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS "${CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS} /DEBUG") -ENDIF () + set(CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS + "${CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS} /DEBUG") +endif() -IF (STAR_SYSTEM_WINDOWS) - SET (CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} ws2_32.lib iphlpapi.lib shlwapi.lib dbghelp.lib") - SET (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} ws2_32.lib iphlpapi.lib shlwapi.lib dbghelp.lib") +if(STAR_SYSTEM_WINDOWS) + set(CMAKE_C_STANDARD_LIBRARIES + "${CMAKE_C_STANDARD_LIBRARIES} ws2_32.lib iphlpapi.lib shlwapi.lib dbghelp.lib" + ) + set(CMAKE_CXX_STANDARD_LIBRARIES + "${CMAKE_CXX_STANDARD_LIBRARIES} ws2_32.lib iphlpapi.lib shlwapi.lib dbghelp.lib" + ) -ELSEIF (STAR_SYSTEM_LINUX) - SET (CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lpthread -ldl -lrt") - SET (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lpthread -ldl -lrt") +elseif(STAR_SYSTEM_LINUX) + set(CMAKE_C_STANDARD_LIBRARIES + "${CMAKE_C_STANDARD_LIBRARIES} -lpthread -ldl -lrt") + set(CMAKE_CXX_STANDARD_LIBRARIES + "${CMAKE_CXX_STANDARD_LIBRARIES} -lpthread -ldl -lrt") -ELSEIF (STAR_SYSTEM_FREEBSD) - SET (CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lpthread -lrt") - SET (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lpthread -lrt") +elseif(STAR_SYSTEM_FREEBSD) + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lpthread -lrt") + set(CMAKE_CXX_STANDARD_LIBRARIES + "${CMAKE_CXX_STANDARD_LIBRARIES} -lpthread -lrt") -ENDIF () +endif() # Find all required external libraries, based on build settings... -IF (STAR_USE_JEMALLOC) +if(STAR_USE_JEMALLOC) # Assumes jemalloc was configured with a "je_" function prefix - FIND_PACKAGE (JeMalloc REQUIRED) + find_package(JeMalloc REQUIRED) - INCLUDE_DIRECTORIES (SYSTEM ${JEMALLOC_INCLUDE_DIR}) - SET (STAR_EXT_LIBS ${JEMALLOC_LIBRARY}) -ENDIF () + include_directories(SYSTEM ${JEMALLOC_INCLUDE_DIR}) + set(STAR_EXT_LIBS ${JEMALLOC_LIBRARY}) +endif() -FIND_PACKAGE (ZLIB REQUIRED) -FIND_PACKAGE (PNG REQUIRED) -FIND_PACKAGE (Freetype REQUIRED) -FIND_PACKAGE (OggVorbis REQUIRED) +find_package(ZLIB REQUIRED) +find_package(PNG REQUIRED) +find_package(Freetype REQUIRED) +find_package(OggVorbis REQUIRED) -INCLUDE_DIRECTORIES (SYSTEM - ${FREETYPE_INCLUDE_DIRS} - ${OGGVORBIS_INCLUDE_DIR} - ) +include_directories(SYSTEM ${FREETYPE_INCLUDE_DIRS} ${OGGVORBIS_INCLUDE_DIR}) -IF (TARGET freetype AND NOT TARGET Freetype::Freetype) +if(TARGET freetype AND NOT TARGET Freetype::Freetype) add_library(Freetype::Freetype ALIAS freetype) - MESSAGE(STATUS "Freetype target name is freetype") -ELSEIF (TARGET Freetype::Freetype AND NOT TARGET freetype) + message(STATUS "Freetype target name is freetype") +elseif(TARGET Freetype::Freetype AND NOT TARGET freetype) add_library(freetype ALIAS Freetype::Freetype) - MESSAGE(STATUS "Freetype target name is Freetype::Freetype") -ELSE () - MESSAGE (FATAL_ERROR "Could not find Freetype") -ENDIF () + message(STATUS "Freetype target name is Freetype::Freetype") +else() + message(FATAL_ERROR "Could not find Freetype") +endif() -SET (STAR_EXT_LIBS ${STAR_EXT_LIBS} +set(STAR_EXT_LIBS + ${STAR_EXT_LIBS} ZLIB::ZLIB PNG::PNG Freetype::Freetype @@ -450,116 +488,113 @@ SET (STAR_EXT_LIBS ${STAR_EXT_LIBS} ${VORBIS_LIBRARY} ${OGG_LIBRARY} opus # Currently a submodule from extern - ) +) -IF (STAR_BUILD_GUI) - FIND_PACKAGE (SDL2 REQUIRED) - INCLUDE_DIRECTORIES (SYSTEM ${SDL2_INCLUDE_DIR}) - SET (STAR_EXT_GUI_LIBS ${SDL2_LIBRARY}) +if(STAR_BUILD_GUI) + find_package(SDL2 REQUIRED) + include_directories(SYSTEM ${SDL2_INCLUDE_DIR}) + set(STAR_EXT_GUI_LIBS ${SDL2_LIBRARY}) - FIND_PACKAGE (OpenGL REQUIRED) - FIND_PACKAGE (GLEW REQUIRED) + find_package(OpenGL REQUIRED) + find_package(GLEW REQUIRED) - INCLUDE_DIRECTORIES (SYSTEM ${GLEW_INCLUDE_DIR} ${SDL2_INCLUDE_DIR}) - SET (STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${OPENGL_LIBRARY} ${GLEW_LIBRARY}) + include_directories(SYSTEM ${GLEW_INCLUDE_DIR} ${SDL2_INCLUDE_DIR}) + set(STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${OPENGL_LIBRARY} ${GLEW_LIBRARY}) - IF (STAR_ENABLE_STEAM_INTEGRATION) - FIND_PACKAGE (SteamApi REQUIRED) + if(STAR_ENABLE_STEAM_INTEGRATION) + find_package(SteamApi REQUIRED) - INCLUDE_DIRECTORIES (SYSTEM ${STEAM_API_INCLUDE_DIR}) - SET (STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${STEAM_API_LIBRARY}) - ENDIF () + include_directories(SYSTEM ${STEAM_API_INCLUDE_DIR}) + set(STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${STEAM_API_LIBRARY}) + endif() - IF (STAR_ENABLE_DISCORD_INTEGRATION) - FIND_PACKAGE (DiscordApi REQUIRED) + if(STAR_ENABLE_DISCORD_INTEGRATION) + find_package(DiscordApi REQUIRED) - INCLUDE_DIRECTORIES (SYSTEM ${DISCORD_API_INCLUDE_DIR}) - SET (STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${DISCORD_API_LIBRARY}) - ENDIF () -ENDIF () + include_directories(SYSTEM ${DISCORD_API_INCLUDE_DIR}) + set(STAR_EXT_GUI_LIBS ${STAR_EXT_GUI_LIBS} ${DISCORD_API_LIBRARY}) + endif() +endif() # Set basic build flags, include all the relevant source directories, based on # build settings... -SET (BUILD_SHARED_LIBS false) +set(BUILD_SHARED_LIBS false) # First set output dir for the generic no-config case (e.g. macos / linux) -SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../dist) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../dist) # Second, set output dir for multi-config builds (e.g. msvc) -FOREACH (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) - STRING (TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) - SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_SOURCE_DIR}/../dist) -ENDFOREACH (OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES) +foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} + ${PROJECT_SOURCE_DIR}/../dist) +endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES) # External code included with starbound source, which core depends on -SET (STAR_EXTERN_INCLUDES ${PROJECT_SOURCE_DIR}/extern) -ADD_SUBDIRECTORY (extern) +set(STAR_EXTERN_INCLUDES ${PROJECT_SOURCE_DIR}/extern) +add_subdirectory(extern) # Core support code, not specific to starbound. -SET (STAR_CORE_INCLUDES ${PROJECT_SOURCE_DIR}/core) -ADD_SUBDIRECTORY (core) +set(STAR_CORE_INCLUDES ${PROJECT_SOURCE_DIR}/core) +add_subdirectory(core) # Less general purpose code than core that is available to both the game and # application modules. -SET (STAR_BASE_INCLUDES ${PROJECT_SOURCE_DIR}/base) -ADD_SUBDIRECTORY (base) +set(STAR_BASE_INCLUDES ${PROJECT_SOURCE_DIR}/base) +add_subdirectory(base) # Platform APIs that are implemented by the application module -SET (STAR_PLATFORM_INCLUDES ${PROJECT_SOURCE_DIR}/platform) -ADD_SUBDIRECTORY (platform) +set(STAR_PLATFORM_INCLUDES ${PROJECT_SOURCE_DIR}/platform) +add_subdirectory(platform) # Core game logic used by both server and client. -SET (STAR_GAME_INCLUDES - ${PROJECT_SOURCE_DIR}/game - ${PROJECT_SOURCE_DIR}/game/interfaces - ${PROJECT_SOURCE_DIR}/game/items - ${PROJECT_SOURCE_DIR}/game/objects - ${PROJECT_SOURCE_DIR}/game/scripting - ${PROJECT_SOURCE_DIR}/game/terrain - ) -ADD_SUBDIRECTORY (game) +set(STAR_GAME_INCLUDES + ${PROJECT_SOURCE_DIR}/game ${PROJECT_SOURCE_DIR}/game/interfaces + ${PROJECT_SOURCE_DIR}/game/items ${PROJECT_SOURCE_DIR}/game/objects + ${PROJECT_SOURCE_DIR}/game/scripting ${PROJECT_SOURCE_DIR}/game/terrain) +add_subdirectory(game) # Googletest based tests -OPTION (BUILD_TESTING "Build test projects" OFF) -IF (BUILD_TESTING) - ENABLE_TESTING() - ADD_SUBDIRECTORY (test) -ENDIF() +option(BUILD_TESTING "Build test projects" OFF) +if(BUILD_TESTING) + enable_testing() + add_subdirectory(test) +endif() # Starbound stand-alone server. -ADD_SUBDIRECTORY (server) +add_subdirectory(server) # cmdline utilities -ADD_SUBDIRECTORY (utility) +add_subdirectory(utility) -IF (STAR_BUILD_GUI) +if(STAR_BUILD_GUI) # Handles creating windows, keyboard / mouse / joystick input, and the 2d # rendering model. - SET (STAR_APPLICATION_INCLUDES ${PROJECT_SOURCE_DIR}/application) - ADD_SUBDIRECTORY (application) + set(STAR_APPLICATION_INCLUDES ${PROJECT_SOURCE_DIR}/application) + add_subdirectory(application) # Rendering code not dependent on widget system - SET (STAR_RENDERING_INCLUDES ${PROJECT_SOURCE_DIR}/rendering) - ADD_SUBDIRECTORY (rendering) + set(STAR_RENDERING_INCLUDES ${PROJECT_SOURCE_DIR}/rendering) + add_subdirectory(rendering) # Panes and Widgets - SET (STAR_WINDOWING_INCLUDES ${PROJECT_SOURCE_DIR}/windowing) - ADD_SUBDIRECTORY (windowing) + set(STAR_WINDOWING_INCLUDES ${PROJECT_SOURCE_DIR}/windowing) + add_subdirectory(windowing) # Client interface code - SET (STAR_FRONTEND_INCLUDES ${PROJECT_SOURCE_DIR}/frontend) - ADD_SUBDIRECTORY (frontend) + set(STAR_FRONTEND_INCLUDES ${PROJECT_SOURCE_DIR}/frontend) + add_subdirectory(frontend) # Starbound game / client - ADD_SUBDIRECTORY (client) + add_subdirectory(client) # Qt GUI tools - IF (STAR_BUILD_QT_TOOLS) - ADD_SUBDIRECTORY (json_tool) + if(STAR_BUILD_QT_TOOLS) + add_subdirectory(json_tool) - if (STAR_ENABLE_STEAM_INTEGRATION) - ADD_SUBDIRECTORY (mod_uploader) - ENDIF () - ENDIF () -ENDIF () + if(STAR_ENABLE_STEAM_INTEGRATION) + add_subdirectory(mod_uploader) + endif() + endif() +endif() From 170b913caa66f58650073d990e75b68ad554221a Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Thu, 7 Mar 2024 14:31:25 +1100 Subject: [PATCH 3/4] fix fucked up line splits from cmake-format --- source/CMakeLists.txt | 189 +++++++++++++++++------------------------- 1 file changed, 77 insertions(+), 112 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index bbc5dd9..763ea66 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.27) +cmake_minimum_required(VERSION 3.16) # Find CCache find_program(CCACHE_PATH ccache) @@ -10,20 +10,16 @@ else() message(STATUS "Not using CCache") endif() + project(starbound) set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake) set(CMAKE_CONFIGURATION_TYPES Debug RelWithAsserts RelWithDebInfo Release) -set(CMAKE_EXPORT_COMPILE_COMMANDS - ON - CACHE INTERNAL "") -set(CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS - "" - CACHE STRING "" FORCE) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") +set(CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS "" CACHE STRING "" FORCE) # Update the docstring on CMAKE_BUILD_TYPE to show what options we actually -# allow SET (CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING "Choose the -# type of build, options are: Debug RelWithAsserts RelWithDebInfo Release" -# FORCE) +# allow +# SET (CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING "Choose the type of build, options are: Debug RelWithAsserts RelWithDebInfo Release" FORCE) # Discover all the relevant environment / system information and place the # result in STAR_* cmake variables. @@ -82,9 +78,7 @@ endif() # C/C++ compiler ID, like clang, gnu, or msvc if(NOT DEFINED STAR_COMPILER) if(NOT CMAKE_C_COMPILER_ID STREQUAL CMAKE_CXX_COMPILER_ID) - message( - FATAL_ERROR - "C and C++ compiler id do not match, unsupported build configuration") + message(FATAL_ERROR "C and C++ compiler id do not match, unsupported build configuration") endif() if(CMAKE_C_COMPILER_ID STREQUAL "Clang") @@ -101,10 +95,8 @@ endif() # Enable OPTIONs based on the discovered system / environment... if(STAR_COMPILER STREQUAL "gnu") - option(STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX - "Statically link libgcc and libstdc++" OFF) - option(STAR_ENABLE_GCC_PROFILING "Enable gcc/g++ profiling via the -pg flag" - OFF) + option(STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX "Statically link libgcc and libstdc++" OFF) + option(STAR_ENABLE_GCC_PROFILING "Enable gcc/g++ profiling via the -pg flag" OFF) option(STAR_ENABLE_GLIBCXX_DEBUG "Enable _GLIBCXX_DEBUG for g++" OFF) endif() @@ -133,15 +125,11 @@ message(STATUS "System family: ${STAR_SYSTEM_FAMILY}") message(STATUS "C/C++ compiler: ${STAR_COMPILER}") if(DEFINED STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX) - message( - STATUS - "Statically linking to libgcc / libstdc++: ${STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX}" - ) + message(STATUS "Statically linking to libgcc / libstdc++: ${STAR_ENABLE_STATIC_LIBGCC_LIBSTDCXX}") endif() if(DEFINED STAR_ENABLE_STATIC_MSVC_RUNTIME) - message( - STATUS "Statically linking to CRT: ${STAR_ENABLE_STATIC_MSVC_RUNTIME}") + message(STATUS "Statically linking to CRT: ${STAR_ENABLE_STATIC_MSVC_RUNTIME}") endif() if(DEFINED STAR_ENABLE_GLIBCXX_DEBUG) @@ -155,14 +143,11 @@ if(DEFINED STAR_BUILD_QT_TOOLS) endif() if(DEFINED STAR_ENABLE_STEAM_INTEGRATION) - message( - STATUS "Using Steam platform services: ${STAR_ENABLE_STEAM_INTEGRATION}") + message(STATUS "Using Steam platform services: ${STAR_ENABLE_STEAM_INTEGRATION}") endif() if(DEFINED STAR_ENABLE_DISCORD_INTEGRATION) - message( - STATUS "Using Discord platform services: ${STAR_ENABLE_DISCORD_INTEGRATION}" - ) + message(STATUS "Using Discord platform services: ${STAR_ENABLE_DISCORD_INTEGRATION}") endif() message(STATUS "Using Lua API checks: ${STAR_LUA_APICHECK}") @@ -173,9 +158,7 @@ message(STATUS "Using jemalloc: ${STAR_USE_JEMALLOC}") # Set a cmake variable to true and define a corresponding C/C++ definition function(SET_FLAG flagValue) - set(${flagValue} - TRUE - PARENT_SCOPE) + set(${flagValue} TRUE PARENT_SCOPE) add_definitions(-D${flagValue}) endfunction() @@ -244,12 +227,8 @@ endif() # Set C/C++ compiler flags based on build environment... if(STAR_COMPILER_GNU) - set(CMAKE_C_FLAGS - "${CMAKE_C_FLAGS} -rdynamic -Wall -Wextra -Wno-unused -Wno-implicit-fallthrough -no-pie" - ) - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -std=c++17 -rdynamic -Wall -Wextra -Wno-unused -Wno-implicit-fallthrough -no-pie" - ) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic -Wall -Wextra -Wno-unused -Wno-implicit-fallthrough -no-pie") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -rdynamic -Wall -Wextra -Wno-unused -Wno-implicit-fallthrough -no-pie") if(STAR_SYSTEM_FAMILY_WINDOWS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthreads") @@ -282,25 +261,19 @@ if(STAR_COMPILER_GNU) set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Ofast") elseif(STAR_COMPILER_CLANG) - set(CMAKE_C_FLAGS - "${CMAKE_C_FLAGS} -Wall -Wextra -Wuninitialized -Wno-parentheses-equality -Wno-deprecated-declarations" - ) - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -Wextra -Wuninitialized -Wno-parentheses-equality -Wno-deprecated-declarations" - ) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wuninitialized -Wno-parentheses-equality -Wno-deprecated-declarations") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -Wextra -Wuninitialized -Wno-parentheses-equality -Wno-deprecated-declarations") if(STAR_SYSTEM_MACOS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - set(CMAKE_SHARED_LINKER_FLAGS - "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export_dynamic") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-export_dynamic") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-export_dynamic") set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++17") set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") elseif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread -D_REENTRANT") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -D_REENTRANT") - set(CMAKE_SHARED_LINKER_FLAGS - "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--export_dynamic") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--export_dynamic") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--export_dynamic") endif() @@ -317,32 +290,35 @@ elseif(STAR_COMPILER_CLANG) set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Ofast") elseif(STAR_COMPILER_MSVC) - # /MP - Multi-processor building /EHsc - Enable normal C++ exception - # handling /bigobj - More sections in .obj files (Cannot build in Debug - # without it) /MT - Use multi-threaded statically linked C runtime - # library /GA - Optimize for windows application /Ox - Full - # optimization /fp:fast - Equivalent to -ffast-math /GS- - Disable buffers - # security check /Zi - Generates debugging information without Edit and - # Continue /Gy - Use function-level linking /wd4996 - Disable warnings - # about unsafe C functions /wd4351 - Disable warnings about new behavior of - # default initialization of arrays (which is the correct behavior anyway) + # /MP - Multi-processor building + # /EHsc - Enable normal C++ exception handling + # /bigobj - More sections in .obj files (Cannot build in Debug without it) + # /MT - Use multi-threaded statically linked C runtime library + # /GA - Optimize for windows application + # /Ox - Full optimization + # /fp:fast - Equivalent to -ffast-math + # /GS- - Disable buffers security check + # /Zi - Generates debugging information without Edit and Continue + # /Gy - Use function-level linking + # /wd4996 - Disable warnings about unsafe C functions + # /wd4351 - Disable warnings about new behavior of default initialization of + # arrays (which is the correct behavior anyway) # /wd4800 - Disable warnings about using non-bool as true or false (useless - # performance warning) /wd4244 - Disable warnings about type conversion loss - # of data, it's a nice warning, but it triggers on lots and lots of harmless - # things that no other compiler warns about, like passing an int as a float - # parameter /wd4305 - Disable warnings about truncation from double to float - # /wd4267 - Disable warnings about 64 - 32 bit truncation /wd4456 - Disable - # warnings about hiding previous local declaration /wd4503 - Silence warnings - # about MSVC generating a name so long it has to truncate it /wd4250 - - # Silence "XX inherits YY via dominance" /wd4624 - Silence implicitly deleted - # destructor warnings that show up when using unions in interesting ways. + # performance warning) + # /wd4244 - Disable warnings about type conversion loss of data, it's a nice + # warning, but it triggers on lots and lots of harmless things that no + # other compiler warns about, like passing an int as a float parameter + # /wd4305 - Disable warnings about truncation from double to float + # /wd4267 - Disable warnings about 64 - 32 bit truncation + # /wd4456 - Disable warnings about hiding previous local declaration + # /wd4503 - Silence warnings about MSVC generating a name so long it has to + # truncate it + # /wd4250 - Silence "XX inherits YY via dominance" + # /wd4624 - Silence implicitly deleted destructor warnings that show up when + # using unions in interesting ways. - set(CMAKE_C_FLAGS - "${CMAKE_C_FLAGS} /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624" - ) - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} /std:c++17 /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624" - ) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /MP /EHsc /bigobj /wd4996 /wd4351 /wd4800 /wd4244 /wd4305 /wd4267 /wd4456 /wd4503 /wd4250 /wd4624") if(STAR_ENABLE_STATIC_MSVC_RUNTIME) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MT") @@ -364,15 +340,11 @@ elseif(STAR_COMPILER_MSVC) if(STAR_ARCHITECTURE_I386) # Assume all 32 bit target cpus support MMX, SSE, and SSE2 - set(CMAKE_C_FLAGS_RELWITHASSERTS - "${CMAKE_C_FLAGS_RELWITHASSERTS} /arch:SSE2") - set(CMAKE_CXX_FLAGS_RELWITHASSERTS - "${CMAKE_CXX_FLAGS_RELWITHASSERTS} /arch:SSE2") + set(CMAKE_C_FLAGS_RELWITHASSERTS "${CMAKE_C_FLAGS_RELWITHASSERTS} /arch:SSE2") + set(CMAKE_CXX_FLAGS_RELWITHASSERTS "${CMAKE_CXX_FLAGS_RELWITHASSERTS} /arch:SSE2") - set(CMAKE_C_FLAGS_RELWITHDEBINFO - "${CMAKE_C_FLAGS_RELWITHDEBINFO} /arch:SSE2") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO - "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /arch:SSE2") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /arch:SSE2") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /arch:SSE2") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /arch:SSE2") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE2") @@ -384,8 +356,7 @@ elseif(STAR_COMPILER_MSVC) else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pthread -D_REENTRANT") - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -pthread -D_REENTRANT") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -pthread -D_REENTRANT") set(CMAKE_C_FLAGS_DEBUG "-g") set(CMAKE_CXX_FLAGS_DEBUG "-g") @@ -412,43 +383,32 @@ elseif(STAR_SYSTEM_WINDOWS) if(STAR_COMPILER STREQUAL "msvc") set(CMAKE_RC_COMPILE_OBJECT " /fo ") else() - set(CMAKE_RC_COMPILE_OBJECT - " -O coff -i -o ") + set(CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") endif() endif() if(STAR_COMPILER STREQUAL "msvc") - # /largeaddressaware - Make 32 bit build able to use 3GB addresses /OPT:REF - - # Eliminates functions and data that are never referenced /OPT:ICF - Performs - # identical COMDAT folding /PDBCompress - Hint to windows that it should - # compress the resulting PDB files - set(CMAKE_EXE_LINKER_FLAGS - "${CMAKE_EXE_LINKER_FLAGS} /largeaddressaware /OPT:REF /OPT:ICF /PDBCompress" - ) + # /largeaddressaware - Make 32 bit build able to use 3GB addresses + # /OPT:REF - Eliminates functions and data that are never referenced + # /OPT:ICF - Performs identical COMDAT folding + # /PDBCompress - Hint to windows that it should compress the resulting PDB files + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /largeaddressaware /OPT:REF /OPT:ICF /PDBCompress") # Make sure RelWithAsserts has debugging enabled - set(CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS - "${CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS} /DEBUG") + set(CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS "${CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS} /DEBUG") endif() if(STAR_SYSTEM_WINDOWS) - set(CMAKE_C_STANDARD_LIBRARIES - "${CMAKE_C_STANDARD_LIBRARIES} ws2_32.lib iphlpapi.lib shlwapi.lib dbghelp.lib" - ) - set(CMAKE_CXX_STANDARD_LIBRARIES - "${CMAKE_CXX_STANDARD_LIBRARIES} ws2_32.lib iphlpapi.lib shlwapi.lib dbghelp.lib" - ) + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} ws2_32.lib iphlpapi.lib shlwapi.lib dbghelp.lib") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} ws2_32.lib iphlpapi.lib shlwapi.lib dbghelp.lib") elseif(STAR_SYSTEM_LINUX) - set(CMAKE_C_STANDARD_LIBRARIES - "${CMAKE_C_STANDARD_LIBRARIES} -lpthread -ldl -lrt") - set(CMAKE_CXX_STANDARD_LIBRARIES - "${CMAKE_CXX_STANDARD_LIBRARIES} -lpthread -ldl -lrt") + set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lpthread -ldl -lrt") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lpthread -ldl -lrt") elseif(STAR_SYSTEM_FREEBSD) set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lpthread -lrt") - set(CMAKE_CXX_STANDARD_LIBRARIES - "${CMAKE_CXX_STANDARD_LIBRARIES} -lpthread -lrt") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lpthread -lrt") endif() @@ -467,7 +427,10 @@ find_package(PNG REQUIRED) find_package(Freetype REQUIRED) find_package(OggVorbis REQUIRED) -include_directories(SYSTEM ${FREETYPE_INCLUDE_DIRS} ${OGGVORBIS_INCLUDE_DIR}) +include_directories(SYSTEM + ${FREETYPE_INCLUDE_DIRS} + ${OGGVORBIS_INCLUDE_DIR} +) if(TARGET freetype AND NOT TARGET Freetype::Freetype) add_library(Freetype::Freetype ALIAS freetype) @@ -479,8 +442,7 @@ else() message(FATAL_ERROR "Could not find Freetype") endif() -set(STAR_EXT_LIBS - ${STAR_EXT_LIBS} +set(STAR_EXT_LIBS ${STAR_EXT_LIBS} ZLIB::ZLIB PNG::PNG Freetype::Freetype @@ -527,8 +489,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../dist) # Second, set output dir for multi-config builds (e.g. msvc) foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} - ${PROJECT_SOURCE_DIR}/../dist) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_SOURCE_DIR}/../dist) endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES) # External code included with starbound source, which core depends on @@ -550,9 +511,13 @@ add_subdirectory(platform) # Core game logic used by both server and client. set(STAR_GAME_INCLUDES - ${PROJECT_SOURCE_DIR}/game ${PROJECT_SOURCE_DIR}/game/interfaces - ${PROJECT_SOURCE_DIR}/game/items ${PROJECT_SOURCE_DIR}/game/objects - ${PROJECT_SOURCE_DIR}/game/scripting ${PROJECT_SOURCE_DIR}/game/terrain) + ${PROJECT_SOURCE_DIR}/game + ${PROJECT_SOURCE_DIR}/game/interfaces + ${PROJECT_SOURCE_DIR}/game/items + ${PROJECT_SOURCE_DIR}/game/objects + ${PROJECT_SOURCE_DIR}/game/scripting + ${PROJECT_SOURCE_DIR}/game/terrai + ) add_subdirectory(game) # Googletest based tests From 89fe1bf15bc458df6c63f1aaeac42a4883efbfd5 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Thu, 7 Mar 2024 14:43:23 +1100 Subject: [PATCH 4/4] oops. --- source/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 763ea66..f0f767c 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -516,7 +516,7 @@ set(STAR_GAME_INCLUDES ${PROJECT_SOURCE_DIR}/game/items ${PROJECT_SOURCE_DIR}/game/objects ${PROJECT_SOURCE_DIR}/game/scripting - ${PROJECT_SOURCE_DIR}/game/terrai + ${PROJECT_SOURCE_DIR}/game/terrain ) add_subdirectory(game)