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:
underscorediscovery
2020-05-28 04:51:00 +00:00
parent eab98f879e
commit 68902e25e9
12 changed files with 304 additions and 2 deletions
@@ -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;