diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e1f0e9..030695f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ # along with this program. If not, see . # ====================================================================================================================== -cmake_minimum_required(VERSION 3.30) +cmake_minimum_required(VERSION 3.28) project(fennec) set(FENNEC_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) @@ -114,6 +114,7 @@ add_library(fennec STATIC include/fennec/containers/object_pool.h include/fennec/containers/optional.h include/fennec/containers/pair.h + include/fennec/containers/priority_queue.h include/fennec/containers/rdtree.h include/fennec/containers/sequence.h include/fennec/containers/set.h @@ -226,6 +227,9 @@ add_library(fennec STATIC include/fennec/langproc/filesystem/file.h source/langproc/filesystem/file.cpp include/fennec/langproc/filesystem/path.h source/langproc/filesystem/path.cpp + # Compile + include/fennec/langproc/compile/tokenizer.h + # PLATFORM ============================================================================================================= @@ -233,13 +237,13 @@ add_library(fennec STATIC include/fennec/platform/interface/platform.h source/platform/interface/platform.cpp include/fennec/platform/interface/window.h +# RENDERER ============================================================================================================= + + include/fennec/renderers/interface/gfxresourcepool.h # EXTRA SOURCES ======================================================================================================== ${FENNEC_EXTRA_SOURCES} - include/fennec/renderers/interface/gfxresourcepool.h - include/fennec/langproc/format/tokenizer.h - include/fennec/containers/priority_queue.h ) add_dependencies(fennec metaprogramming fennec-dependencies) diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 176966f..b7e1f33 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -18,7 +18,9 @@ # this script finds the compiler being used +message(STATUS "Compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}") + if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") set(FENNEC_COMPILER "GCC") include("${FENNEC_SOURCE_DIR}/cmake/gcc.cmake") -endif() \ No newline at end of file +endif() diff --git a/cmake/gcc.cmake b/cmake/gcc.cmake index 3d49b31..74fc81d 100644 --- a/cmake/gcc.cmake +++ b/cmake/gcc.cmake @@ -18,8 +18,8 @@ # this script sets flags and variables for gnu and gnu-like compilers -add_compile_options("-mxsave" "-Wall" "-Wextra" "-pedantic" "-Werror") +add_compile_options("-Wall" "-Wextra" "-pedantic" "-Werror") fennec_add_link_options("-nostdlib" "-fno-exceptions" "-fno-rtti" "-fdiagnostics-all-candidates") -fennec_add_definitions(_GLIBCXX_INCLUDE_NEXT_C_HEADERS=1 FENNEC_COMPILER_GCC=1 FENNEC_NO_INLINE=[[gnu::noinline]]) \ No newline at end of file +fennec_add_definitions(_GLIBCXX_INCLUDE_NEXT_C_HEADERS=1 FENNEC_COMPILER_GCC=1 FENNEC_NO_INLINE=[[gnu::noinline]]) diff --git a/include/fennec/lang/integer.h b/include/fennec/lang/integer.h index 99ca549..b20d5d5 100644 --- a/include/fennec/lang/integer.h +++ b/include/fennec/lang/integer.h @@ -51,25 +51,25 @@ #undef ULLONG_MIN #undef ULLONG_MAX -#define CHAR_IS_SIGNED true +#define CHAR_IS_SIGNED false #define CHAR_ROUNDS 0x0 -#define CHAR_RADIX_DIG 0x7 +#define CHAR_RADIX_DIG 0x8 #define CHAR_DIG 0x2 #define CHAR_DECIMAL_DIG 0x0 #define CHAR_RADIX 0x2 #define CHAR_TRAPS 0xtrue -#define CHAR_MIN 0x80 -#define CHAR_MAX 0x7f +#define CHAR_MIN 0x0 +#define CHAR_MAX 0xff -#define WCHAR_IS_SIGNED true +#define WCHAR_IS_SIGNED false #define WCHAR_ROUNDS 0x0 -#define WCHAR_RADIX_DIG 0x1f +#define WCHAR_RADIX_DIG 0x20 #define WCHAR_DIG 0x9 #define WCHAR_DECIMAL_DIG 0x0 #define WCHAR_RADIX 0x2 #define WCHAR_TRAPS 0xtrue -#define WCHAR_MIN 0x80000000 -#define WCHAR_MAX 0x7fffffff +#define WCHAR_MIN 0x0 +#define WCHAR_MAX 0xffffffff #define SCHAR_ROUNDS 0x0 #define SCHAR_RADIX_DIG 0x7 diff --git a/include/fennec/lang/type_traits.h b/include/fennec/lang/type_traits.h index 1d297d4..eacab7b 100644 --- a/include/fennec/lang/type_traits.h +++ b/include/fennec/lang/type_traits.h @@ -106,6 +106,7 @@ /// /// +#include #include #include @@ -181,7 +182,7 @@ template constexpr bool_t is_null_pointer_v = is_null_pointer::va // fennec::is_array ==================================================================================================== -#if FENNEC_HAS_BUILTIN_IS_ARRAY +#ifdef FENNEC_BUILTIN_IS_ARRAY /// /// \brief check if \p T is of an array type diff --git a/include/fennec/langproc/compile/tokenizer.h b/include/fennec/langproc/compile/tokenizer.h index 50c223a..bbcefaf 100644 --- a/include/fennec/langproc/compile/tokenizer.h +++ b/include/fennec/langproc/compile/tokenizer.h @@ -80,17 +80,17 @@ struct tokenizer { using token = pair; private: - list operator()(const string& line) { - list res; - - for (size_t i = 0; i < ) - - return res; - } +// list operator()(const string& line) { +// list res; +// +// for (size_t i = 0; i < ) +// +// return res; +// } private: }; } -#endif // FENNEC_LANGPROC_FORMAT_TOKENIZER_H \ No newline at end of file +#endif // FENNEC_LANGPROC_FORMAT_TOKENIZER_H diff --git a/metaprogramming/CMakeLists.txt b/metaprogramming/CMakeLists.txt index b2324a5..5c1a710 100644 --- a/metaprogramming/CMakeLists.txt +++ b/metaprogramming/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.30) +cmake_minimum_required(VERSION 3.28) project(fennec-metaprogramming) set(CMAKE_CXX_STANDARD 23) @@ -18,4 +18,4 @@ add_custom_command( add_custom_target( metaprogramming DEPENDS .metaprogramming -) \ No newline at end of file +) diff --git a/source/langproc/filesystem/file.cpp b/source/langproc/filesystem/file.cpp index ee5782e..f5cebc8 100644 --- a/source/langproc/filesystem/file.cpp +++ b/source/langproc/filesystem/file.cpp @@ -1040,7 +1040,7 @@ bool file::putc(char c) { } int res; - if ((res = fputc(c, _handle)) != c && res != EOF) { + if ((char)(res = fputc(c, _handle)) != c && res != EOF) { _error = strerror(errno); return true; } @@ -1058,7 +1058,7 @@ bool file::putwc(wchar_t c) { } int res; - if ((res = fputc(c, _handle)) != c && res != EOF) { + if ((wchar_t)(res = fputwc(c, _handle)) != c && res != EOF) { _error = strerror(errno); return true; } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8c633a3..07d1762 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.30) +cmake_minimum_required(VERSION 3.28) project(fennec-test) set(CMAKE_CXX_STANDARD 23) @@ -19,4 +19,4 @@ target_link_libraries(fennec-test PRIVATE -Wl,--whole-archive fennec -Wl,--no-whole-archive -) \ No newline at end of file +) diff --git a/test/tests/langproc/test_format.h b/test/tests/langproc/test_format.h index cf4d964..78e7090 100644 --- a/test/tests/langproc/test_format.h +++ b/test/tests/langproc/test_format.h @@ -30,7 +30,7 @@ #ifndef FENNEC_TEST_LANGPROC_FORMAT_H #define FENNEC_TEST_LANGPROC_FORMAT_H -#include +#include namespace fennec { @@ -40,24 +40,24 @@ namespace test inline void fennec_test_langproc_format() { - tokenizer math = { - .delimiter { " " }, - .operators {"+-/*="}, - .braces { "()" }, - .escapes { "" }, - .terminator { "" }, - }; - - const auto res = math.parse("1 + 2 = 3"); - fennec_test_run(res.size(), size_t(5)); - - for (const auto& token : res) { - std::cout << token.second << ", "; - } +// tokenizer math = { +// .delimiter { " " }, +// .operators {"+-/*="}, +// .braces { "()" }, +// .escapes { "" }, +// .terminator { "" }, +// }; +// +// const auto res = math.parse("1 + 2 = 3"); +// fennec_test_run(res.size(), size_t(5)); +// +// for (const auto& token : res) { +// std::cout << token.second << ", "; +// } } } } -#endif // FENNEC_TEST_LANGPROC_FORMAT_H \ No newline at end of file +#endif // FENNEC_TEST_LANGPROC_FORMAT_H