Jackalope / jlib (public) (License: GPLv3 or later) (since 2019-11-18) (hash sha1)
jlib C++ template library
Used to replace std functionality without exception handling.
- data structures
- filesystem routines
- crossplatform threads interface (currently only pthreads implementation)
- thread pool
- crossplatform dynamic memory functions interface (allocate, reallocate, deallocate) with alignment support
- high percision timer routines based on timespec
List of commits:
Subject Hash Author Date (UTC)
compiler options and optimizations 92bc2d91c14c58ce630a7f4f400b5d076ac03286 Jackalope 2020-05-24 01:16:59
cpu_number return unsigned int b9c11a1b4474747c313957bef5573d1db6c481ff Jackalope 2020-05-24 00:13:29
ThreadPool moved to jl namespace, same for cpu_number function 2e486f0d57347197a875abe79b4c637e7c925ecc Jackalope 2020-05-23 23:26:00
removed inline keyword from functions in fs.cpp 295f11fb3a3f285c5393687675d8dd2c86e726b8 Jackalope 2020-05-23 23:25:12
make assert constexpr compatible again 378556f2203439749e7c4003031c3e1de1511f6d Jackalope 2020-05-23 23:24:04
renamed Doxygen options cbda01d11706d12d842d088e917dd3e7866689a2 Jackalope 2020-05-23 23:23:30
Updated license notice 0d013874b3eca0e34ad14cbb4dc4aa7628549a4b Jackalope 2020-05-23 22:52:50
Moved some implementation to library obj target 43b7241f3ded0b0b049d15bf337dac6b25b577e6 Jackalope 2020-05-23 22:44:45
CMake documentation target 8ab15abc55ba97919ffa4b07bdf9389b0ff57a24 Jackalope 2020-05-23 21:19:36
CMake install target with version control 9e7aaf56c9c3cae628cc8dc35ded5fec49d414b2 Jackalope 2020-05-23 21:10:32
added read whole TEXT file func also (only binary was before) d70894b97e0760c85fa03bf802d36a840d331bc9 Jackalope 2020-05-20 19:05:49
Changed cmake library interface 0b4c87b296597ae929dc1038e9eefbf155250fa7 Jackalope 2020-05-12 06:57:42
added byte_array and byte_array_ro typedefs 902916f777983eba78d325e9f9c9c01bd2502ca3 Jackalope 2020-05-11 07:47:33
remove _BIT postfix from file opening flags 1cf92db6ccb85c2ac0ed7f86fbdfeac97745bd45 Jackalope 2020-05-11 07:46:51
added license 16a67712bb2ffd15263a6a146a06d4860f435645 Jackalope 2020-05-09 23:31:00
code refactoring 7cfcdc6b9382cea7227d44746c166747fced61a0 Jackalope 2020-05-09 23:05:21
add check for threads count to prevent bloating ce23263c2c053dd1374d54c618b6850215077880 Jackalope 2020-04-21 22:11:24
pthreads detach function fix 8ac43fe43beca9b55d2ea605e0c3fd821b8b5579 Jackalope 2020-04-15 09:53:11
make asserts constexpr compatible 4c2dfc64c3d9587ee9b749db9355f4e0d6003547 Jackalope 2020-03-29 07:03:08
changed default grow policy size addition to 8 619dc29be4ed4ac049cbee81a92e37f29ffd8b7c Jackalope 2020-03-06 07:05:53
Commit 92bc2d91c14c58ce630a7f4f400b5d076ac03286 - compiler options and optimizations
Author: Jackalope
Author date (UTC): 2020-05-24 01:16
Committer name: Jackalope
Committer date (UTC): 2020-05-24 01:16
Parent(s): b9c11a1b4474747c313957bef5573d1db6c481ff
Signing key:
Tree: fdda7c65ae8d23dee6c35716f272c20655e4c438
File Lines added Lines deleted
CMakeLists.txt 29 1
File CMakeLists.txt changed (mode: 100644) (index da40b3f..d2f58e6)
... ... target_include_directories(jlib PUBLIC
65 65 target_link_libraries(jlib PRIVATE pthread) target_link_libraries(jlib PRIVATE pthread)
66 66 target_compile_features(jlib PUBLIC cxx_std_17) target_compile_features(jlib PUBLIC cxx_std_17)
67 67
68 target_compile_options(jlib PRIVATE
69 $<$<CONFIG:DEBUG>:-O0;-g3;-ggdb>
70 $<$<CONFIG:RELEASE>:-O3>
71 $<$<CONFIG:RELWITHDEBINFO>:-O3;-g3;-ggdb>
72 )
73
74 option(JLIB_NATIVE "Enable non-portable compiling optimizations" ON)
75 if (JLIB_NATIVE)
76 target_compile_options(jlib PRIVATE -march=native)
77 message(STATUS "Compiling for native arch!")
78 endif()
79
80 if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
81 OR
82 CMAKE_CXX_COMPILER_ID STREQUAL "GCC")
83 target_compile_options(jlib PRIVATE -fno-exceptions -fno-rtti -ffast-math)
84 endif()
85
86 option(JLIB_LTO "Enable LTO" ON)
87 if (JLIB_LTO AND CMAKE_BUILD_TYPE STREQUAL Release)
88 set_property(TARGET jlib APPEND_STRING PROPERTY LINK_FLAGS -flto)
89 target_compile_options(jlib PRIVATE -flto)
90 message(STATUS "LTO is enabled")
91 endif()
92
68 93 set(INSTALL_DIR include/${EXPORT_NAME}) set(INSTALL_DIR include/${EXPORT_NAME})
69 94 foreach(FILE ${INCLUDE_FILES}) foreach(FILE ${INCLUDE_FILES})
70 95 get_filename_component(DIR_PATH ${FILE} DIRECTORY) get_filename_component(DIR_PATH ${FILE} DIRECTORY)
 
... ... configure_file(version.cmake.in
75 100 ${CMAKE_CURRENT_BINARY_DIR}/version.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
76 101 @ONLY @ONLY
77 102 ) )
78 set_target_properties(jlib PROPERTIES SUFFIX ".so.${PROJECT_VERSION}")
103 set_target_properties(jlib PROPERTIES
104 SUFFIX .so.${PROJECT_VERSION}
105 DEBUG_POSTFIX d
106 )
79 107 install(TARGETS jlib install(TARGETS jlib
80 108 DESTINATION lib DESTINATION lib
81 109 EXPORT jlib-config EXPORT jlib-config
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/Jackalope/jlib

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/Jackalope/jlib

Clone this repository using git:
git clone git://git.rocketgit.com/user/Jackalope/jlib

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main