Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamesTheMaker <79481373+JamesTheMaker@users.noreply.github.com>2024-03-07 09:44:18 -0500
committerGitHub <noreply@github.com>2024-03-07 09:44:18 -0500
commit3c8a8619d57b0432d2a5d32d8853fd9d0e52a8b1 (patch)
tree2ebe2253ce0f8577d55f4d2d4ec382c201de5c6f
parent14ec64ace75c83238ee9f81fe4ea4c3c9eed09fb (diff)
parent89fe1bf15bc458df6c63f1aaeac42a4883efbfd5 (diff)
Merge branch 'OpenStarbound:main' into main
-rw-r--r--attic/gitlab-ci/assemble.sh (renamed from scripts/gitlab-ci/assemble.sh)0
-rw-r--r--attic/gitlab-ci/linux/build.sh (renamed from scripts/gitlab-ci/linux/build.sh)0
-rw-r--r--attic/gitlab-ci/linux/run-client.sh (renamed from scripts/gitlab-ci/linux/run-client.sh)0
-rw-r--r--attic/gitlab-ci/linux/run-server.sh (renamed from scripts/gitlab-ci/linux/run-server.sh)0
-rw-r--r--attic/gitlab-ci/linux/sbinit.config (renamed from scripts/gitlab-ci/linux/sbinit.config)0
-rw-r--r--attic/gitlab-ci/linux/test.sh (renamed from scripts/gitlab-ci/linux/test.sh)0
-rw-r--r--attic/gitlab-ci/macos/Starbound.app/Contents/Info.plist (renamed from scripts/gitlab-ci/macos/Starbound.app/Contents/Info.plist)0
-rw-r--r--attic/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns (renamed from scripts/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns)bin47576 -> 47576 bytes
-rw-r--r--attic/gitlab-ci/macos/build.sh (renamed from scripts/gitlab-ci/macos/build.sh)0
-rw-r--r--attic/gitlab-ci/macos/run-server.sh (renamed from scripts/gitlab-ci/macos/run-server.sh)0
-rw-r--r--attic/gitlab-ci/macos/sbinit.config (renamed from scripts/gitlab-ci/macos/sbinit.config)0
-rw-r--r--attic/gitlab-ci/macos/test.sh (renamed from scripts/gitlab-ci/macos/test.sh)0
-rw-r--r--attic/gitlab-ci/repack_steamfree.sh (renamed from scripts/gitlab-ci/repack_steamfree.sh)0
-rw-r--r--attic/gitlab-ci/windows/build.bat (renamed from scripts/gitlab-ci/windows/build.bat)0
-rw-r--r--attic/gitlab-ci/windows/sbinit.config (renamed from scripts/gitlab-ci/windows/sbinit.config)0
-rw-r--r--attic/gitlab-ci/windows/test.bat (renamed from scripts/gitlab-ci/windows/test.bat)0
-rw-r--r--scripts/ci/linux/build.sh22
-rw-r--r--scripts/ci/linux/run-client.sh5
-rw-r--r--scripts/ci/linux/run-server.sh22
-rw-r--r--scripts/ci/linux/sbinit.config9
-rw-r--r--scripts/ci/linux/test.sh8
-rw-r--r--scripts/ci/macos/Starbound.app/Contents/Info.plist27
-rw-r--r--scripts/ci/macos/Starbound.app/Contents/Resources/starbound.icnsbin0 -> 47576 bytes
-rw-r--r--scripts/ci/macos/build.sh25
-rw-r--r--scripts/ci/macos/run-server.sh11
-rw-r--r--scripts/ci/macos/sbinit.config9
-rw-r--r--scripts/ci/macos/test.sh9
-rw-r--r--scripts/ci/windows/build.bat32
-rw-r--r--scripts/ci/windows/sbinit.config9
-rw-r--r--scripts/ci/windows/test.bat8
-rw-r--r--source/CMakeLists.txt778
31 files changed, 585 insertions, 389 deletions
diff --git a/scripts/gitlab-ci/assemble.sh b/attic/gitlab-ci/assemble.sh
index ebfa130..ebfa130 100644
--- a/scripts/gitlab-ci/assemble.sh
+++ b/attic/gitlab-ci/assemble.sh
diff --git a/scripts/gitlab-ci/linux/build.sh b/attic/gitlab-ci/linux/build.sh
index b70f6de..b70f6de 100644
--- a/scripts/gitlab-ci/linux/build.sh
+++ b/attic/gitlab-ci/linux/build.sh
diff --git a/scripts/gitlab-ci/linux/run-client.sh b/attic/gitlab-ci/linux/run-client.sh
index b7cb8ba..b7cb8ba 100644
--- a/scripts/gitlab-ci/linux/run-client.sh
+++ b/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
index 79b02fd..79b02fd 100644
--- a/scripts/gitlab-ci/linux/run-server.sh
+++ b/attic/gitlab-ci/linux/run-server.sh
diff --git a/scripts/gitlab-ci/linux/sbinit.config b/attic/gitlab-ci/linux/sbinit.config
index 0be7e7c..0be7e7c 100644
--- a/scripts/gitlab-ci/linux/sbinit.config
+++ b/attic/gitlab-ci/linux/sbinit.config
diff --git a/scripts/gitlab-ci/linux/test.sh b/attic/gitlab-ci/linux/test.sh
index 0bc8e7c..0bc8e7c 100644
--- a/scripts/gitlab-ci/linux/test.sh
+++ b/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
index 44fcdca..44fcdca 100644
--- a/scripts/gitlab-ci/macos/Starbound.app/Contents/Info.plist
+++ b/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
index d6c93ff..d6c93ff 100644
--- a/scripts/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns
+++ b/attic/gitlab-ci/macos/Starbound.app/Contents/Resources/starbound.icns
Binary files differ
diff --git a/scripts/gitlab-ci/macos/build.sh b/attic/gitlab-ci/macos/build.sh
index 7517843..7517843 100644
--- a/scripts/gitlab-ci/macos/build.sh
+++ b/attic/gitlab-ci/macos/build.sh
diff --git a/scripts/gitlab-ci/macos/run-server.sh b/attic/gitlab-ci/macos/run-server.sh
index e043263..e043263 100644
--- a/scripts/gitlab-ci/macos/run-server.sh
+++ b/attic/gitlab-ci/macos/run-server.sh
diff --git a/scripts/gitlab-ci/macos/sbinit.config b/attic/gitlab-ci/macos/sbinit.config
index 0be7e7c..0be7e7c 100644
--- a/scripts/gitlab-ci/macos/sbinit.config
+++ b/attic/gitlab-ci/macos/sbinit.config
diff --git a/scripts/gitlab-ci/macos/test.sh b/attic/gitlab-ci/macos/test.sh
index 3843325..3843325 100644
--- a/scripts/gitlab-ci/macos/test.sh
+++ b/attic/gitlab-ci/macos/test.sh
diff --git a/scripts/gitlab-ci/repack_steamfree.sh b/attic/gitlab-ci/repack_steamfree.sh
index 41c84cd..41c84cd 100644
--- a/scripts/gitlab-ci/repack_steamfree.sh
+++ b/attic/gitlab-ci/repack_steamfree.sh
diff --git a/scripts/gitlab-ci/windows/build.bat b/attic/gitlab-ci/windows/build.bat
index cfd209a..cfd209a 100644
--- a/scripts/gitlab-ci/windows/build.bat
+++ b/attic/gitlab-ci/windows/build.bat
diff --git a/scripts/gitlab-ci/windows/sbinit.config b/attic/gitlab-ci/windows/sbinit.config
index 73ccc4b..73ccc4b 100644
--- a/scripts/gitlab-ci/windows/sbinit.config
+++ b/attic/gitlab-ci/windows/sbinit.config
diff --git a/scripts/gitlab-ci/windows/test.bat b/attic/gitlab-ci/windows/test.bat
index d995088..d995088 100644
--- a/scripts/gitlab-ci/windows/test.bat
+++ b/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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleGetInfoString</key>
+ <string>Starbound</string>
+ <key>CFBundleExecutable</key>
+ <string>starbound</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.chucklefish</string>
+ <key>CFBundleName</key>
+ <string>starbound</string>
+ <key>CFBundleIconFile</key>
+ <string>starbound</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>LSEnvironment</key>
+ <dict>
+ <key>MinimumSystemVersion</key>
+ <string>10.9.0</string>
+ </dict>
+ <key>SDL_FILESYSTEM_BASE_DIR_TYPE</key>
+ <string>parent</string>
+</dict>
+</plist>
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 0000000..d6c93ff
--- /dev/null
+++ b/scripts/ci/macos/Starbound.app/Contents/Resources/starbound.icns
Binary files differ
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 <<END
+
+tell application "Terminal"
+ do script "cd \"`pwd`\";./starbound_server $@;exit"
+end tell
+
+END
diff --git a/scripts/ci/macos/sbinit.config b/scripts/ci/macos/sbinit.config
new file mode 100644
index 0000000..45918a1
--- /dev/null
+++ b/scripts/ci/macos/sbinit.config
@@ -0,0 +1,9 @@
+{
+ "assetDirectories" : [
+ "./data/",
+ "../assets/",
+ "../mods/"
+ ],
+
+ "storageDirectory" : "../storage/"
+} \ No newline at end of file
diff --git a/scripts/ci/macos/test.sh b/scripts/ci/macos/test.sh
new file mode 100644
index 0000000..3843325
--- /dev/null
+++ b/scripts/ci/macos/test.sh
@@ -0,0 +1,9 @@
+#!/bin/sh -e
+
+cd macos_binaries
+
+cp ../scripts/osx/sbinit.config .
+
+./core_tests
+./game_tests
+
diff --git a/scripts/ci/windows/build.bat b/scripts/ci/windows/build.bat
new file mode 100644
index 0000000..cfd209a
--- /dev/null
+++ b/scripts/ci/windows/build.bat
@@ -0,0 +1,32 @@
+set QT_PREFIX_PATH="C:\Qt\5.7\msvc2015_64"
+set CMAKE_PREFIX_PATH="C:\Program Files\CMake"
+set PATH=%PATH%;%CMAKE_PREFIX_PATH%\bin;%QT_PREFIX_PATH%\bin
+
+mkdir build
+cd build || exit /b 1
+
+del /f CMakeCache.txt
+
+cmake.exe ^
+ -G"Visual Studio 17 2022" ^
+ -T"v143" ^
+ -DCMAKE_PREFIX_PATH=%QT_PREFIX_PATH% ^
+ -DSTAR_USE_JEMALLOC=OFF ^
+ -DSTAR_ENABLE_STEAM_INTEGRATION=ON ^
+ -DSTAR_ENABLE_DISCORD_INTEGRATION=ON ^
+ -DSTAR_BUILD_QT_TOOLS=OFF ^
+ -DCMAKE_INCLUDE_PATH="..\lib\windows\include" ^
+ -DCMAKE_LIBRARY_PATH="..\lib\windows" ^
+ ..\source || exit /b 1
+
+cmake.exe --build . --config RelWithDebInfo || exit /b 1
+
+cd ..
+
+move dist windows_binaries || exit /b 1
+
+if exist windows_binaries\mod_uploader.exe (
+ windeployqt.exe windows_binaries\mod_uploader.exe || exit /b 1
+)
+
+copy lib\windows\*.dll windows_binaries\ || exit /b 1
diff --git a/scripts/ci/windows/sbinit.config b/scripts/ci/windows/sbinit.config
new file mode 100644
index 0000000..06917cf
--- /dev/null
+++ b/scripts/ci/windows/sbinit.config
@@ -0,0 +1,9 @@
+{
+ "assetDirectories" : [
+ ".\\data\\",
+ "..\\assets\\",
+ "..\\mods\\"
+ ],
+
+ "storageDirectory" : "..\\storage\\"
+} \ No newline at end of file
diff --git a/scripts/ci/windows/test.bat b/scripts/ci/windows/test.bat
new file mode 100644
index 0000000..d995088
--- /dev/null
+++ b/scripts/ci/windows/test.bat
@@ -0,0 +1,8 @@
+cd windows_binaries
+
+set PATH="%PATH%;..\lib\windows"
+
+copy ..\scripts\windows\sbinit.config .
+
+.\core_tests || exit /b 1
+.\game_tests || exit /b 1
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 139b4e8..f0f767c 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -1,22 +1,22 @@
-CMAKE_MINIMUM_REQUIRED (VERSION 3.16)
+cmake_minimum_required(VERSION 3.16)
# 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 ()
-
-
-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)
+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)
+
+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)
@@ -25,271 +25,271 @@ SET (CMAKE_EXE_LINKER_FLAGS_RELWITHASSERTS "" CACHE STRING "" FORCE)
# 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_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)
+ 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()
# 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 (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(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()
# 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 ()
-
-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_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_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_SYSTEM_WINDOWS)
+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_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_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_LUA_APICHECK)
+ add_definitions(-DLUA_USE_APICHECK)
+endif()
+
+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 ()
-
-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_USE_JEMALLOC)
- ADD_DEFINITIONS (-DSTAR_USE_JEMALLOC)
-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_DISCORD_INTEGRATION)
+ add_definitions(-DSTAR_ENABLE_DISCORD_INTEGRATION)
+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_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_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_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_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")
-
- 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_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_RELEASE "-DNDEBUG -Ofast")
- SET (CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Ofast")
-
-ELSEIF (STAR_COMPILER_MSVC)
+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_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()
+
+ 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_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")
+
+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()
+
+ 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_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")
+
+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)
@@ -317,132 +317,132 @@ ELSEIF (STAR_COMPILER_MSVC)
# /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 "<CMAKE_RC_COMPILER> /fo <OBJECT> <SOURCE>")
- ELSE ()
- SET (CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
- ENDIF()
-ENDIF ()
+ enable_language(RC)
+ if(STAR_COMPILER STREQUAL "msvc")
+ set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> /fo <OBJECT> <SOURCE>")
+ else()
+ set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
+ endif()
+endif()
-IF (STAR_COMPILER STREQUAL "msvc")
+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")
+ 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
+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,67 +450,67 @@ 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
+set(STAR_GAME_INCLUDES
${PROJECT_SOURCE_DIR}/game
${PROJECT_SOURCE_DIR}/game/interfaces
${PROJECT_SOURCE_DIR}/game/items
@@ -518,48 +518,48 @@ SET (STAR_GAME_INCLUDES
${PROJECT_SOURCE_DIR}/game/scripting
${PROJECT_SOURCE_DIR}/game/terrain
)
-ADD_SUBDIRECTORY (game)
+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_ENABLE_STEAM_INTEGRATION)
- ADD_SUBDIRECTORY (mod_uploader)
- ENDIF ()
- ENDIF ()
-ENDIF ()
+ if(STAR_BUILD_QT_TOOLS)
+ add_subdirectory(json_tool)
+
+ if(STAR_ENABLE_STEAM_INTEGRATION)
+ add_subdirectory(mod_uploader)
+ endif()
+ endif()
+endif()