feat: add 64bit-no-nan-tagging build config across gmake, premake, vs2017, and vs2019 projects
Introduce new build configuration "64bit-no-nan-tagging" for both 64-bit and 32-bit platforms, defining WREN_NAN_TAGGING=0 to disable NaN tagging in the Wren CLI. Update Makefiles, premake5.lua, and Visual Studio solution/project files to support the new config with appropriate compiler flags, linker settings, and platform-specific defines (e.g., _GNU_SOURCE on Linux, _DARWIN_* on macOS).
This commit is contained in:
@@ -548,6 +548,47 @@
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
58D2BC467A9E6978B7539286 /* 64bit-no-nan-tagging */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
|
||||
CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"_DARWIN_USE_64_BIT_INODE=1",
|
||||
"_DARWIN_UNLIMITED_SELECT=1",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
OBJROOT = "obj/32bit/64bit-no-nan-tagging";
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
SYMROOT = ../../bin;
|
||||
USER_HEADER_SEARCH_PATHS = (
|
||||
../../src/cli,
|
||||
../../src/module,
|
||||
../../deps/wren/include,
|
||||
../../deps/wren/src/vm,
|
||||
../../deps/wren/src/optional,
|
||||
../../deps/libuv/include,
|
||||
../../deps/libuv/src,
|
||||
);
|
||||
};
|
||||
name = "64bit-no-nan-tagging";
|
||||
};
|
||||
AD9B00157BBE53C702CCA655 /* 64bit-no-nan-tagging */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CONFIGURATION_BUILD_DIR = ../../bin;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
INSTALL_PATH = /usr/local/bin;
|
||||
PRODUCT_NAME = wren_cli;
|
||||
};
|
||||
name = "64bit-no-nan-tagging";
|
||||
};
|
||||
D5E9D7C2E2A687345790F602 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
@@ -620,6 +661,8 @@
|
||||
16BEA9CB6D4C143D45C5280B /* Release */,
|
||||
1377A691FE63CC83464994D1 /* Debug */,
|
||||
1377A691FE63CC83464994D1 /* Debug */,
|
||||
AD9B00157BBE53C702CCA655 /* 64bit-no-nan-tagging */,
|
||||
AD9B00157BBE53C702CCA655 /* 64bit-no-nan-tagging */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
@@ -631,6 +674,8 @@
|
||||
EC26AA7C1ACCFE6E740E58BC /* Release */,
|
||||
D5E9D7C2E2A687345790F602 /* Debug */,
|
||||
D5E9D7C2E2A687345790F602 /* Debug */,
|
||||
58D2BC467A9E6978B7539286 /* 64bit-no-nan-tagging */,
|
||||
58D2BC467A9E6978B7539286 /* 64bit-no-nan-tagging */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
|
||||
Reference in New Issue
Block a user