Compare commits
13 Commits
de3e8a8ac4
...
7276cea2be
Author | SHA1 | Date |
---|---|---|
|
7276cea2be | |
|
1c19d627aa | |
|
646c71c277 | |
|
48afa82f29 | |
|
39ca745d0d | |
|
a7becb43e6 | |
|
41517eacb1 | |
|
64a818cfd9 | |
|
fb06503307 | |
|
189f56c34e | |
|
88e135d53b | |
|
8d3dc7551d | |
|
61c3f8a440 |
|
@ -104,7 +104,7 @@ jobs:
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
||||||
- name: Set up Python (for SCons)
|
- name: Set up Python (for SCons)
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.x'
|
python-version: '3.x'
|
||||||
|
|
||||||
|
|
|
@ -47,11 +47,6 @@ option(GODOT_CPP_WARNING_AS_ERROR "Treat warnings as errors" OFF)
|
||||||
# Add path to modules
|
# Add path to modules
|
||||||
list( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )
|
list( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )
|
||||||
|
|
||||||
# Check if we are building ourself or being included
|
|
||||||
if(${PROJECT_NAME} STREQUAL ${CMAKE_PROJECT_NAME})
|
|
||||||
set(GODOT_CPP_BUILDING_SELF ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Set some helper variables for readability
|
# Set some helper variables for readability
|
||||||
set( compiler_is_clang "$<OR:$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:Clang>>" )
|
set( compiler_is_clang "$<OR:$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:Clang>>" )
|
||||||
set( compiler_is_gnu "$<CXX_COMPILER_ID:GNU>" )
|
set( compiler_is_gnu "$<CXX_COMPILER_ID:GNU>" )
|
||||||
|
@ -158,12 +153,6 @@ add_library(godot::cpp ALIAS ${PROJECT_NAME})
|
||||||
|
|
||||||
include(GodotCompilerWarnings)
|
include(GodotCompilerWarnings)
|
||||||
|
|
||||||
# Treat warnings as errors if we are building ourself
|
|
||||||
if(GODOT_CPP_BUILDING_SELF)
|
|
||||||
unset( GODOT_CPP_WARNING_AS_ERROR CACHE )
|
|
||||||
set_warning_as_error()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_compile_features(${PROJECT_NAME}
|
target_compile_features(${PROJECT_NAME}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
cxx_std_17
|
cxx_std_17
|
||||||
|
|
|
@ -356,6 +356,12 @@ String vformat(const String &p_text, const VarArgs... p_args) {
|
||||||
|
|
||||||
#include <godot_cpp/variant/builtin_vararg_methods.hpp>
|
#include <godot_cpp/variant/builtin_vararg_methods.hpp>
|
||||||
|
|
||||||
|
#ifdef REAL_T_IS_DOUBLE
|
||||||
|
using PackedRealArray = PackedFloat64Array;
|
||||||
|
#else
|
||||||
|
using PackedRealArray = PackedFloat32Array;
|
||||||
|
#endif // REAL_T_IS_DOUBLE
|
||||||
|
|
||||||
} // namespace godot
|
} // namespace godot
|
||||||
|
|
||||||
#endif // GODOT_VARIANT_HPP
|
#endif // GODOT_VARIANT_HPP
|
||||||
|
|
|
@ -59,31 +59,9 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||||
|
|
||||||
else()
|
else()
|
||||||
|
|
||||||
#elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
||||||
# using Clang
|
|
||||||
#elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
||||||
# using GCC and maybe MinGW?
|
|
||||||
|
|
||||||
set(GODOT_LINKER_FLAGS "-static-libgcc -static-libstdc++ -Wl,-R,'$$ORIGIN'")
|
set(GODOT_LINKER_FLAGS "-static-libgcc -static-libstdc++ -Wl,-R,'$$ORIGIN'")
|
||||||
|
|
||||||
# Hmm.. maybe to strikt?
|
|
||||||
set(GODOT_COMPILE_FLAGS "-fPIC -g -Wwrite-strings")
|
set(GODOT_COMPILE_FLAGS "-fPIC -g -Wwrite-strings")
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wchar-subscripts -Wcomment -Wdisabled-optimization")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wformat -Wformat=2 -Wformat-security -Wformat-y2k")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wimport -Winit-self -Winline -Winvalid-pch -Werror")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wmissing-braces -Wmissing-format-attribute")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wmissing-include-dirs -Wmissing-noreturn -Wpacked -Wpointer-arith")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wredundant-decls -Wreturn-type -Wsequence-point")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wswitch -Wswitch-enum -Wtrigraphs")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused-label")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wunused-value -Wvariadic-macros -Wvolatile-register-var -Wno-error=attributes")
|
|
||||||
|
|
||||||
# -Wshadow -Wextra -Wall -Weffc++ -Wfloat-equal -Wstack-protector -Wunused-parameter -Wsign-compare -Wunused-variable -Wcast-align
|
|
||||||
# -Wunused-function -Wstrict-aliasing -Wstrict-aliasing=2 -Wmissing-field-initializers
|
|
||||||
|
|
||||||
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android")
|
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -Wno-ignored-attributes")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -fno-omit-frame-pointer -O0")
|
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} -fno-omit-frame-pointer -O0")
|
||||||
|
|
|
@ -11,41 +11,38 @@ def configure(env):
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
def mySubProcess(cmdline, env):
|
def mySubProcess(cmdline, env):
|
||||||
# print "SPAWNED : " + cmdline
|
# print(cmdline)
|
||||||
startupinfo = subprocess.STARTUPINFO()
|
rv = subprocess.run(args=cmdline, shell=True, env=env).returncode
|
||||||
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
|
||||||
proc = subprocess.Popen(
|
|
||||||
cmdline,
|
|
||||||
stdin=subprocess.PIPE,
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
stderr=subprocess.PIPE,
|
|
||||||
startupinfo=startupinfo,
|
|
||||||
shell=False,
|
|
||||||
env=env,
|
|
||||||
)
|
|
||||||
data, err = proc.communicate()
|
|
||||||
rv = proc.wait()
|
|
||||||
if rv:
|
if rv:
|
||||||
print("=====")
|
print("=====")
|
||||||
print(err.decode("utf-8"))
|
print("subprocess.run().returncode=", rv, "(", hex(rv), ")")
|
||||||
|
print("len(cmdline)=", len(cmdline))
|
||||||
print("=====")
|
print("=====")
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
def mySpawn(sh, escape, cmd, args, env):
|
def mySpawn(sh, escape, cmd, args, env):
|
||||||
|
|
||||||
newargs = " ".join(args[1:])
|
|
||||||
cmdline = cmd + " " + newargs
|
|
||||||
|
|
||||||
rv = 0
|
rv = 0
|
||||||
if len(cmdline) > 32000 and cmd.endswith("ar"):
|
if len(args) > 4 and cmd.endswith("ar"):
|
||||||
cmdline = cmd + " " + args[1] + " " + args[2] + " "
|
# print("Long ar command is split.\nargc=", len(args))
|
||||||
for i in range(3, len(args)):
|
lead = len(" ".join(args[0:3]))
|
||||||
rv = mySubProcess(cmdline + args[i], env)
|
begin = 3
|
||||||
|
length = lead + 1 + len(args[begin])
|
||||||
|
for i in range(4, len(args)):
|
||||||
|
length += 1 + len(args[i])
|
||||||
|
if length > 8158:
|
||||||
|
cmdline = " ".join(args[0:3] + args[begin:i])
|
||||||
|
# print("objs=", i - begin, ", length=", len(cmdline))
|
||||||
|
rv = mySubProcess(cmdline, env)
|
||||||
if rv:
|
if rv:
|
||||||
break
|
break
|
||||||
else:
|
begin = i
|
||||||
|
length = lead + 1 + len(args[begin])
|
||||||
|
if not rv:
|
||||||
|
cmdline = " ".join(args[0:3] + args[begin:])
|
||||||
|
# print("objs=", len(args) - begin, ", length=", len(cmdline))
|
||||||
rv = mySubProcess(cmdline, env)
|
rv = mySubProcess(cmdline, env)
|
||||||
|
else:
|
||||||
|
rv = mySubProcess(" ".join(args), env)
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
env["SPAWN"] = mySpawn
|
env["SPAWN"] = mySpawn
|
||||||
|
|
Loading…
Reference in New Issue