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