| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
preset: prepend 'preset-' to clarify source of configuration
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
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!
|
| |
|
| |
|
|
|
|
| |
scripts/build.sh), simple lint fixes.
|
|\ |
|
| | |
|
|/
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
dependencies w/o using it
|
| |
|
|
|
|
| |
`-fstack-clash_protection`
|
|
|
|
| |
Note: STATIC_LINKER_FLAG is unused, as it uses 'ar' and should just obey the object files setup.
|
| |
|
| |
|
|
|
|
| |
fraction_t); Show CMAKE_ build variables touched
|
|
|
|
| |
arm32/armhf else enabled), use cmake variable USE_LIBUNWIND
|
| |
|
|
|
|
| |
VERSION_LONG reflects post-tag and dirty. Added mapping to project version var-names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'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
|
|
|
|
| |
to have a unified environment
|
|
|
|
| |
on my raspi04 setup), also prepend CMAKE_JAVA_COMPILE_FLAGS
|
|
|
|
| |
flags back to default 'source,lines' -> override with JAVAC_DEBUG_ARGS
|
|
|
|
| |
GetGitRevisionDescription (for sub-module support)
|
|
RELEASE: strip native libs, no java debug symbols.
Do not install java sub-modules jaulib_base, jaulib_jni, jaulib_net nor jaulib_pkg.
|