Commit Graph

260 Commits

Author SHA1 Message Date
Username404 3ca51f450f
CMakeLists.txt: Make sure MINIMAL_RUNTIME is set to 0 when emscripten is in use
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-07-25 12:33:11 +02:00
Username404 4e08c0cf05
Implement reserved identifiers
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-07-06 15:35:21 +02:00
Username404 7baac757d2
CMakeLists.txt: Use PROJECT_NAME in more places for consistency
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-06-23 22:49:18 +02:00
Username404 6ddf9a5dd2
Revert "Jenkinsfile: Set CPACK_STRIP_FILES to FALSE"
This reverts commit 84add6cb

Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-06-18 14:45:59 +02:00
Username404 84add6cbde
Jenkinsfile: Set CPACK_STRIP_FILES to FALSE
CMakeLists.txt: Don't redefine CPACK_STRIP_FILES if it is already
defined

Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-06-11 19:07:02 +02:00
Username404 89888113e7
CMakeLists.txt: Disable UPX when using a mingw toolchain, else the produced executable crashes at runtime
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-06-11 17:39:26 +02:00
Username404 faf15b4ccf
CMakeLists.txt: Add "--best" to the flags for UPX
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-06-11 16:26:46 +02:00
Username404 4f2f4a7fa9
CMakeLists.txt: Remove a few useless symbols in a condition
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-06-11 16:12:03 +02:00
Username404 7b6e2165ba
CMakeLists.txt: Find a self-packer and use it if it's found (except when CMAKE_BUILD_TYPE is set to Debug or RelWithDebInfo)
Add the --ultra-brute flag when upx is found

Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-06-11 16:11:11 +02:00
Username404 1469d92bdf
CMakeLists.txt: Don't link against OpenMP when using static linking
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-06-10 20:02:34 +02:00
Username404 f0128bf0c3
CMakeLists.txt: Use the standard C++ exception handling model on MSVC
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-05-20 17:14:14 +02:00
Username404 dfb2ac8062
CMakeLists.txt: Fix template errors on MSVC
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-05-20 17:11:14 +02:00
Username404 dcd3354604
CMakeLists.txt: Make sure conforming mode is enabled when using MSVC
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-05-20 17:10:56 +02:00
Username404 16eeea2524
Target.hpp: Use reinterpret_cast instead of dynamic_cast
CMakeLists.txt: Disable the reinterpret-base-class warning when using Clang

Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-05-18 19:17:48 +02:00
Username404 394fbec4c9
CMakeLists.txt: Disable the "unused command line argument" warning on MinGW toolchains
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-05-14 16:54:28 +02:00
Username404 617837fb91
CMakeLists.txt: Suppress the unqualified std cast call warning on clang 15 and higher
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-05-14 16:51:13 +02:00
Username404 7dadd216a7
CMakeLists.txt: Add "-fweb" to the flags for G++
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-05-14 16:42:03 +02:00
Username404 bf321d7465
CMakeLists.txt: Add "-flto-partition=none" to CMAKE_CXX_FLAGS_RELEASE when using G++ and interprocedural optimization
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-05-14 16:39:36 +02:00
Username404 b96b487882
Add a "IGNORE_MINIMAL_COMPILER_VERSION" option to the CMakeLists.txt file
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:09 +02:00
Username404 bcda5c9b32
Revert "Set NODERAWFS to 1 when using emscripten toolchains to use the raw filesystem backend"
This reverts commit 82b3e2a5

Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:09 +02:00
Username404 30c9515106
Turn on strict mode on emscripten toolchains
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:09 +02:00
Username404 38fa99155b
Set NODERAWFS to 1 when using emscripten toolchains to use the raw filesystem backend
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:09 +02:00
Username404 dadfea85eb
Set NODEJS_CATCH_EXIT to 0 since it is not needed
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:09 +02:00
Username404 660f73a3d2
Specify the environments to support by default with emscripten toolchains
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:09 +02:00
Username404 feb6aedde0
Add "-sJS_MATH=1" to the default flags for emscripten toolchains
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:09 +02:00
Username404 1622096d8b
Add "-sABORTING_MALLOC=0" to the default flags for emscripten toolchains
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:09 +02:00
Username404 5f1e8482cd
Add "-sSAFE_HEAP=1" to the default linker flags for emscripten toolchains
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:08 +02:00
Username404 29a5630e95
Support usage of the posix thread library with emscripten toolchains
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:08 +02:00
Username404 4da10b61dd
Add default linker flags for emscripten toolchains in the CMakeLists.txt file
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-21 23:31:08 +02:00
Username404 7a18bfad59
Add support for Emscripten toolchains in the CMakeLists.txt file
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-09 00:53:08 +02:00
Username404 0a90c25487
Set the minimal clang version to 14.0.1 because 14.0.0 breaks a std::span constructor (which worked in 14.0.0-rc1)
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-04-03 11:51:46 +02:00
Username404 bc1564aadc
Set the MSVC minimum version to 19.30
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-03-27 16:25:35 +02:00
Username404 fb1ec6813f
Require clang 14.0 or higher
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-03-13 22:12:58 +01:00
Username404 df10215e4e
Rename LEGALCOPYRIGHT to LEGAL-COPYRIGHT in the CMakeLists.txt and resources/Yerbacon.rc files
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 22:42:20 +01:00
Username404 3bd631d70c
Make sure run-time type information is enabled on MSVC
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 6f1407ff52
Add a minimal MSVC version
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 c7903678a0
Add "/Zc:inline" to the MSVC compiler flags
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 f2645744ee
Add "/Zc:throwingNew" to the MSVC flags
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 4082523be1
Enable the new preprocessor conformance mode on MSVC
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 17ea99118c
Add "-fno-math-errno" to the release flags for GNU and Clang compilers
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 96efa6b0fb
Enable threads only when they are available, and replace "ybcon" occurrences with "${EXENAME}" in the CMakeLists.txt file 2022-02-14 14:12:00 +01:00
Username404-59 5f2c83c997
Don't generate a new manifest file on MSVC compilers 2022-02-14 14:12:00 +01:00
Username404-59 4365da0daf
Add MSVC specific flags 2022-02-14 14:12:00 +01:00
Username404-59 9a763b38cf
Fix the UPPERCASE_BUILD_TYPE variable to make the CMakeLists.txt file compatible with multi-config generators 2022-02-14 14:12:00 +01:00
Username404-59 2e14746ada
Fix a condition used to determine if windows/mingw is in use 2022-02-14 14:12:00 +01:00
Username404 0f87742ea8
Use the CMAKE_HOST_WIN32 variable instead of win32 to fix building with a reassigned CMAKE_SYSTEM_NAME 2022-02-14 14:12:00 +01:00
Username404 7aae055651
Fix the Jenkinsfile and remove the useless CMake 3.22.0 warning 2022-02-14 14:12:00 +01:00
Username404 c9a6a6c918
Remove a useless condition and two unnecessary parentheses in lexer.cpp 2022-02-14 14:12:00 +01:00
Username404 37b7cbb16d
Include CMAKE_VERSION in the CPack 3.21.1 warning, just in case the condition needs to be changed in a future version 2022-02-14 14:12:00 +01:00
Username404 fd7ae6197c
Improve the message shown when position-independent code is not supported 2022-02-14 14:12:00 +01:00
Username404 d687544519
Add interprocedural optimization flags only when they are supported if clang is in use 2022-02-14 14:12:00 +01:00
Username404 c2f70924ef
Make the check_cxx_compiler_flag invocation lowercase 2022-02-14 14:12:00 +01:00
Username404 30ef4500f2
Add a UPPERCASE_BUILD_TYPE variable to make a condition case-insensitive 2021-10-20 21:19:01 +02:00
Username404 24dca593c5
Remove "-s" from the optimization flags 2021-10-20 20:50:36 +02:00
Username404 36b0e39a92
Only define YBCON_FLAGS in optimized builds 2021-10-20 19:16:45 +02:00
Username404-59 88d22e6183
Add a "--buildInfo" argument to print the compiler and optimization options used when building 2021-10-20 17:08:41 +02:00
Username404 e8adf32645
Set CPACK_NSIS_IGNORE_LICENSE_PAGE to TRUE in the CMakeLists.txt file 2021-10-19 22:08:41 +02:00
Username404 6bb6fa4dda
Add "-fvect-cost-model=unlimited" to the GNU optimization flags in the CMakeLists.txt file 2021-10-11 19:03:38 +02:00
Username404 1df9b9ed74
Add the changelog target as a dependency of the ybcon one 2021-10-02 14:22:29 +02:00
Username404-59 f3322f996e
Precompile the Yerbacon.hpp header file 2021-09-23 11:31:54 +02:00
Username404-59 3fd04724f1
Add an option to disable ccache in the CMakeLists.txt file 2021-09-23 10:57:39 +02:00
Username404-59 1ee7b8dc7c
Use interprocedural optimization flags on every C++ compiler that supports it 2021-09-22 16:45:32 +02:00
Username404 6ce13be4ca
Don't append CMAKE_CXX_COMPILER_ARCHITECTURE_ID to CPACK_SYSTEM_NAME + CPACK_TOPLEVEL_TAG, and remove a few newlines in ParseComponents.hpp 2021-09-19 21:37:53 +02:00
Username404 ed3da58e31
Add the "-pthread" flag to the G++/Clang common flags instead of using another redundant condition 2021-09-18 22:51:34 +02:00
Username404 6243e97d48
Add "-fstrict-enums" to the compiler options for g++ and clang 2021-09-18 22:19:58 +02:00
Username404 328c8a6868
Make sure that rtti is enabled on g++ and clang 2021-09-18 22:02:07 +02:00
Username404 4f2fbe2b19
Set the "-fzero-call-used-regs" flag on GNU compilers 2021-09-18 20:01:44 +02:00
Username404 c1ed7b3e16
Only set the CPack_NSIS branding text variables on windows 2021-09-18 18:29:53 +02:00
Username404 7a12f275ea
Set the nsis branding text 2021-09-18 18:23:00 +02:00
Username404 4d76c684c3
Set the nsis branding text position in the CMakeLists.txt file 2021-09-18 18:09:04 +02:00
Username404 01a1e5d339
Add the "-ftree-parallelize-loops" argument to the GNU compiler flags 2021-09-18 15:15:44 +02:00
Username404-59 4201e3bcfb
Don't use openmp at all in mingw toolchains since they don't seem to work with it 2021-09-14 12:50:55 +02:00
Username404 9cc7f8e39e
Only put the openmp flags when it is present 2021-09-12 12:45:15 +02:00
Username404 e6e12a26ec
Enable OpenMP when it is found in CMakeLists.txt and add two variables called IS_GNU and IS_CLANG 2021-09-12 12:41:15 +02:00
Username404 c0966f9650
Only enable position independent code when it is supported by the compiler 2021-09-12 12:00:15 +02:00
Username404-59 75ca9376fa
Add flags to unwind tables in the CMakeLists.txt 2021-08-30 16:23:55 +02:00
Username404 34691f7a8f
Only set CCACHE_PRESENT when it is not already defined 2021-08-28 23:09:34 +02:00
Username404 2dba7fbda6
Add experimental string transpilation with interpolation 2021-08-28 10:59:24 +02:00
Username404 871ebabb11
Use ccache in builds when it is present 2021-08-27 12:08:56 +02:00
Username404-59 57f8f251bc
Add a CF_PROTECTION variable to hold the -fcf-protection flag in the CMakeLists.txt file 2021-08-22 17:03:53 +02:00
Username404 9a1ea05e83
Add two optimization flags for the GNU compiler 2021-08-22 12:14:12 +02:00
Username404 845f356a86
Show a warning when CMake/CPack 3.21.1 is being used 2021-08-18 23:40:46 +02:00
Username404 4b0e58dd6a
Don't statically link libgcc, and don't use GCC/Clang flags on MSVC when cross-compiling for windows 2021-08-18 20:33:05 +02:00
Username404 df334ec693
Revert "Set the debian package dependencies manually."
This reverts commit 02f6a3db
2021-08-18 12:57:00 +02:00
Username404 18da9b800a
Revert "Make enumerations and wide characters shorter by default when using a GNU compiler or Clang."
This reverts commit dad410f6
2021-08-16 11:41:58 +02:00
Username404 e874cbdf32
Use a dot instead of a hyphen for the package architecture suffix 2021-08-15 17:17:11 +02:00
Username404 7fd3cc32c8
Fix the position of the cmakeArgs arguments in functions calls in the Jenkinsfile, and add a CXX_TARGET variable 2021-08-15 17:08:24 +02:00
Username404 7016eb18c4
Add the target architecture as a suffix to packages in CMakeLists.txt 2021-08-15 15:38:55 +02:00
Username404 1f5c0b1b7a
Enable exceptions handling in the CMakeLists.txt file 2021-08-14 23:15:46 +02:00
Username404 af3a9202c0
Make enumerations and wide characters shorter by default when using a GNU compiler or Clang. 2021-08-14 22:47:48 +02:00
Username404 d6de61df99
Add a few optimizations for G++ in the CMakeLists.txt file 2021-08-11 22:42:45 +02:00
Username404 7a23e31dea
Only define the CMAKE_RC_COMPILER when it isn't defined in the CMakeLists.txt file. 2021-08-10 12:22:28 +02:00
Username404 41da4ef6ac
Add even more flags for the GNU and Clang compilers... 2021-08-10 10:58:18 +02:00
Username404 8739623a08
Move the Clang flags to the CMAKE_CXX_FLAGS_RELEASE, and add another flag. 2021-08-10 10:44:17 +02:00
Username404 f472878180
Use the flag added previously on Clang++ too, and replace occurrences of version numbers with the two variable containing minimal versions of compilers. 2021-08-10 10:32:04 +02:00
Username404 cc0d29fda7
Add an optimization flags for GNU compilers in the CMakeLists.txt file. 2021-08-09 21:33:18 +02:00
Username404 3c14405874
Add variables with the minimal versions of GNU and Clang in the CMakeLists.txt file 2021-08-09 17:17:38 +02:00
Username404 043d2e7485
Make the GNU compiler message a FATAL_ERROR in the CMakeLists.txt file. 2021-08-09 14:39:09 +02:00
Username404 3b991da962
Require Clang 13.0+ in the CMakeLists.txt file, import the tok::type enumeration in lexer.cpp + Parser.hpp, and add [[likely]] attributes to 2 branches of the switch case in lexer.cpp. 2021-08-09 10:58:11 +02:00
Username404 2f853fe797
Add unsigned short values to the tok::type enum and move the parseString function to misc.hpp. 2021-08-06 19:12:28 +02:00