aboutsummaryrefslogtreecommitdiffstats
path: root/JaulibSetup.cmake
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Set JAU_CMAKE_HARD_PRESETS, marking we used hardcoded presetsSven Göthel2024-05-121-0/+1
|
* WebAssembly (emscripten) PatchesSven Göthel2024-05-101-3/+7
|
* CMAKE_CXX_STANDARD is also cached in presetsSven Göthel2024-05-071-0/+1
|
* Build: Drop caching 2 vars (not required) and removing unused 1 varSven Göthel2024-05-071-9/+2
|
* JAU_CMAKE_FIX_INSTALL_PREFIX only once ..Sven Göthel2024-05-071-0/+1
|
* JaulibSetup: Fix CMAKE_INSTALL_PREFIX ${OS_AND_ARCH}-${TOOLSET} add-on, ↵Sven Göthel2024-05-071-5/+10
| | | | preset: prepend 'preset-' to clarify source of configuration
* JaulibSetup.cmake: List cached (persistent) variablesSven Göthel2024-05-071-0/+18
|
* JaulibSetup: CACHE all persistent variables, allowing reconfigurationSven Göthel2024-05-071-48/+62
|
* Build Environment: Better CMake Usage incl. Eclipse (IDE) default CDT CMakeSven Göthel2024-05-071-65/+235
|
* cmake: Use CMAKE_CXX_COMPILER_ID instead of CMAKE_COMPILER_IS_GNUCCv1.2.0Sven Göthel2024-05-041-12/+12
|
* math: Use templates, fix alignment and 'iterator' (pointer) r/w access; ↵Sven Göthel2024-04-151-21/+16
| | | | | | | | | | | | | | | | | | | | enforce 'constexpr'; mat4f dropped Stack for constexpr; Dropped math.cpp having clear dependencies Dropped math.cpp having clear dependencies Adding ctor w/ initializer_list Enforcing 'constexpr' where possible also enforces strict aliasing etc, hence resulting in a more tight definition. Template types for floating-point or integral types are used, added the generic inner class typedef variations used in methods for clarity and proper meta-programming. alignas() on base type enforces utilization with arrays. operator[] uses address of first element w/ strict alignment and proper type (for constexpr).
* Don't enforce CMAKE_CXX_STANDARD, but have user define variable on command ↵v1.0.1Sven Gothel2022-12-311-0/+1
| | | | | | line to have same CXX version being used with parent A parent's project CMAKE_CXX_STANDARD will not be propagated to a add_subdir(jaulib) scope!
* JaulibSetup.cmake: Allow preset of CMAKE_CXX_STANDARDSven Gothel2022-12-301-3/+7
|
* JaulibSetup.cmake: Enforce CMAKE_EXPORT_COMPILE_COMMANDS alwaysSven Gothel2022-12-091-1/+2
|
* clang-tidy (C++ lint): Enable for vscode, optional @ commandline (see ↵Sven Gothel2022-11-261-0/+7
| | | | scripts/build.sh), simple lint fixes.
* Merge branch 'master' of ssh://jordan.goethel.localnet/srv/scm/jaulibSven Gothel2022-11-221-0/+2
|\
| * JaulibSetup.cmake: Set CXX option `-DNDEBUG` is not compiling in DEBUG modeSven Gothel2022-11-131-0/+2
| |
* | JaulibSetup: Setup JDK as defined by cmake FindJava, use environment ↵Sven Gothel2022-11-221-8/+23
|/ | | | | | | JAVA_HOME as variable if unset. Before, we wrongly set JAVAC and JAR command variables simply by JAVA_HOME environment. This was not compatible using different cmake launch methods.
* cmake INSTRUMENTATION: Add '-fsanitize-recover=address' for AsanSven Gothel2022-08-051-3/+3
|
* FreeBSD Support: Build infrastucture, use $os_name-$archabi, ... (1/2)Sven Gothel2022-07-241-27/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | Build scripts - setup-machine-arch.sh - set os_name { 'linux' or 'freebsd' } - skip syslibdir for non linux - be quite if given arg "-quiet" - Set JAVA_HOME (if not done yet) - Set JUNIT_CP (if not done yet) - adopted all build/test scripts C++ compilation: - drop libatomic on all non Linux OS - Set SYS_INCLUDE_DIRS w/ FreeBSD += /usr/local/include, use it in compilation - FreeBSD: Set CMAKE_SYSTEM_PREFIX_PATH={/usr;/usr/local} - Use find_library() for LIBCURL_LIBNAME and LIBUNWIND_LIBNAME w/ REQUIRED if selected - Test: ownership_fix_tag: Use group 44(video) as defined in FreeBSD, Debian and Ubuntu - use 'chgrp -f' to not complain on errors, continue build OS/C++ file locations: - mini_httpd Java file locations: - openjdk - junit4 + hamcrest - IOUtil.getExeTestShellCode(): FreeBSD uses /bin/test as /bin/true is n/a (for executable temp jar dir, i.e. fat jars)
* Use libcurl optional, enable via cmake option `-DUSE_LIBCURL=ON` and remove ↵Sven Gothel2022-06-181-0/+15
| | | | dependencies w/o using it
* Default USE_LIBUNWIND=OFF (must be explicitly enabled)Sven Gothel2022-06-181-7/+2
|
* gcc 9.4: Remove debug option `-fstack-check` as it is incompatible with ↵Sven Gothel2022-06-181-1/+1
| | | | `-fstack-clash_protection`
* DONT_USE_RTTI: Explicitly set '-frtti' option if enabled to be sureSven Gothel2022-05-301-0/+5
| | | | Note: STATIC_LINKER_FLAG is unused, as it uses 'ar' and should just obey the object files setup.
* Make `DONT_USE_RTTI` optional CMake flag, default enabled.Sven Gothel2022-05-181-9/+12
|
* JaulibSetup.cmake: Also use 'no-rtti' for DEBUG buildSven Gothel2022-05-161-0/+3
|
* JaulibSetup.cmake: Always add libatomic (will be required for new ↵Sven Gothel2022-04-281-9/+16
| | | | fraction_t); Show CMAKE_ build variables touched
* Allow disabling libunwind for backtrace (stability, default disabled for ↵Sven Gothel2022-04-241-0/+20
| | | | arm32/armhf else enabled), use cmake variable USE_LIBUNWIND
* Fix GIT_WORKDIR_DIRTY parsing, "CLEAN" indicates a clean git working directorySven Gothel2022-02-071-2/+2
|
* git version info: Added post-tag: VERSION_COMMITS and VERSION_SHA1_SHORT. ↵Sven Gothel2022-02-071-8/+32
| | | | VERSION_LONG reflects post-tag and dirty. Added mapping to project version var-names.
* basic_types.hpp: Cleanup; Add constexpr 'enum class endian', ↵Sven Gothel2021-02-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'pointer_cast()' and 'bit_cast()' and have all byte-order conversion and get/set functions be of constexpr; Add generalized template [get|put]_value(..) and to_hex_string(..) Cleanup - Split basic_types.hpp -> basic_types.hpp + byte_util.hpp + int_types.hpp + string_util.hpp - Moved nsize_t, snsize_t to int_types.hpp and using 'uint_fast32_t' and 'int_fast32_t' as natural types. - Renamed cpp_lang_macros.hpp -> cpp_lang_util.hpp +++ Add constexpr 'enum class endian', 'pointer_cast()' and 'bit_cast()' and have all byte-order conversion and get/set functions be of constexpr. - Exposing '__builtin_bit_cast(Dest_type, arg)' via 'constexpr bool is_builtin_bit_cast_available()' and type traits. - Adding constexpr bit_cast<>() template for C++17 (a C++20 std), allowing constexpr type conversion using '__builtin_bit_cast(Dest_type, arg)', if the latter is available. - Adding constexpr pointer_cast<>() template, allowing constexpr pointer type conversion. Either using '__builtin_bit_cast(Dest_type, arg)' or reinterpret_cast<>(). - Add constexpr 'enum class endian' API, providing compile-time C++ endian evaluation w/o predefined macros. Inspired by C++20. - Replace linux bswap_[16,32,64] with either __builtin_bswap[16,32,64] or own const definition, both allowing constexpr - Add unified overloaded 'constexpr bswap(uint[16,32,64,128,192,256]_t const &)' using constexpr endian API. - Have all [get|put]_<type>(..) operations be of constexpr, using pointer_cast<>() instead of plain reinterpret_cast<>() and the new 'constexpr bswap(..)' methods. +++ Add generalized template [get|put]_value(..) and to_hex_string(..) - Add generalized template 'constexpr T [get|put]_value(..) {}' for std::is_standard_layout_v<T> - Add generalized template 'inline to_hex_string(T const &) {}' for std::is_standard_layout_v<T> +++ All of the above is covered by unit test 'test_basictypecon.cpp' '-std=c++17': - gcc 8.3.0 on arm32, arm64: __builtin_bit_cast() not available - gcc 10.2.1 on amd64: __builtin_bit_cast() not available - clang 9.0.1 on amd64, arm64: __builtin_bit_cast() is available - clang 11.0.1 on amd64: __builtin_bit_cast() is available Full build time (user) incl unit tests (C++ and Java) on GCC - amd64 gcc 11.0.1, 32 cores: 1m38s - arm64 gcc 8.3.0, 4 cores: 13m30s - arm32 gcc 8.3.0, 4 cores: 17m58s
* cmake/build/test: Ensure UTF8 is used by system, set LANG to 'en_US.UTF-8' ↵Sven Gothel2021-01-281-0/+3
| | | | to have a unified environment
* JaulibSetup.cmake: CMAKE_JAVA_COMPILE_FLAGS += '-encoding UTF-8' (required ↵Sven Gothel2021-01-281-1/+1
| | | | on my raspi04 setup), also prepend CMAKE_JAVA_COMPILE_FLAGS
* JaulibSetup.cmake: Respect USE_STRIP pre-set (don't override); javac debug ↵Sven Gothel2021-01-251-14/+21
| | | | flags back to default 'source,lines' -> override with JAVAC_DEBUG_ARGS
* JaulibSetup.cmake: Use as macro; Refine messages; Adopt to new ↵Sven Gothel2021-01-251-11/+25
| | | | GetGitRevisionDescription (for sub-module support)
* java: install single jaulib_jar (next to jaulib_fat_jar) & java-source-zip; ↵Sven Gothel2021-01-251-0/+176
RELEASE: strip native libs, no java debug symbols. Do not install java sub-modules jaulib_base, jaulib_jni, jaulib_net nor jaulib_pkg.