Jackalope / jrf (public) (License: GPLv3 or later version) (since 2019-11-21) (hash sha1)
Libriary for reading and writing resource files: vertices, indices, meshes, images, models and scene data.
Supports reading from filesystem as well as from zip files.
It uses unique binary container format for those resources.
It is used in tool for converting popular formats like wavefront .obj file, TARGA image to this container and also used in resource loader as part of graphics framework.

It requires jlib libriary (see my user repositories) and libzip.
It is possible to remove libzip dependency.
List of commits:
Subject Hash Author Date (UTC)
Link jrf-shared to jlib-shared and jrf-static to jrf-static. b965856e0f894aa48555b9ccfef812bd15d2e3a6 Jackalope 2020-06-01 16:23:26
Version 0.2.2 d6aaf170a2db27ddcd429a89fd873341ea8a0082 Jackalope 2020-05-31 23:47:23
Move definitions to configuration file. a7b28738de65520eddd08cbd5d8c958fa16eedbe Jackalope 2020-05-31 21:45:28
CMake: build both shared and static with JRF_SHARED and JRF_STATIC options. When is subdirectory, select only one instead. 0dc49150959af90cd9210367a61113eca85650eb Jackalope 2020-05-31 21:38:50
CMake: version check changed. 500bcbe11c7f1e418e5d8116e89654d160c8dbd6 Jackalope 2020-05-31 21:37:47
Reduced warnings. 865f2c52ed60c37c050a1033905bb2df278032a0 Jackalope 2020-05-27 15:03:07
Make "find_package(jlib 0.2.0 REQUIRED)" optional 58bfc04890fab24adf5fc84963cb1a3bca7a8706 Jackalope 2020-05-24 16:39:14
changed notice about native compilation 0ed7e9e5e72a2d13e8add619f7999a51634f8e9c Jackalope 2020-05-24 16:37:54
Version 0.2.1 02d30aa69e9026a3f96d8549a297fccfbefbda47 Jackalope 2020-05-24 14:31:31
Why there is Doxyfile? 16cf9fe9e64353a2a717668cc4083465e2f8dff5 Jackalope 2020-05-24 14:25:20
Add license notice to CMakeLists.txt db2e7f018714cd2643c7928a8cce966d3da25059 Jackalope 2020-05-24 14:23:39
Make zip functionality optional 8e4409ba503637e5981f98c4df39ff4d649351de Jackalope 2020-05-24 14:23:18
remove LTO option 9b39746de0abc22a2ae8d2ce8c2db253dd9ad71a Jackalope 2020-05-24 13:41:20
more lost changes c52ad1ddc9fe753cb2ec6f388e4a88f9dfb0fadf Jackalope 2020-05-24 13:30:51
added lost changes 1e60b3d0d8ecda7995f3a102257d8f3c0ca4b15e Jackalope 2020-05-24 13:27:42
CMake installation target 57ba69a5bc17124a96b401c20e68f1602345c4f7 Jackalope 2020-05-24 13:22:15
Moved read,write functions to read.h,write.h, merged vertices,indices and mesh files to mesh.h 365bcb01b01e95448e223de82e9f9e96b51fa789 Jackalope 2020-05-24 13:21:23
Update for new JLIB target a1152ffa6340863fbbd216a4d38806e2d31d3dd5 Jackalope 2020-05-23 23:27:05
added CMake project PARENT_SCOPE variables JRF_* 5ac8009d6709f681fbe0d59dba8cdd646a3cdc47 Jackalope 2020-05-20 19:06:51
added version number definitions, changed magic number (because incompatible) 46ccce5359274d660b327c667903b9534dc3bfe0 Jackalope 2020-05-19 17:39:57
Commit b965856e0f894aa48555b9ccfef812bd15d2e3a6 - Link jrf-shared to jlib-shared and jrf-static to jrf-static.
Author: Jackalope
Author date (UTC): 2020-06-01 16:23
Committer name: Jackalope
Committer date (UTC): 2020-06-01 16:23
Parent(s): d6aaf170a2db27ddcd429a89fd873341ea8a0082
Signing key:
Tree: 4d40f3c04fcee6eaaa2ccfd709a44a4965c568e0
File Lines added Lines deleted
CMakeLists.txt 15 15
File CMakeLists.txt changed (mode: 100644) (index 4c732cb..a14918f)
... ... else()
77 77 option(JRF_STATIC "Use jrf as static library instead of shared" ON) option(JRF_STATIC "Use jrf as static library instead of shared" ON)
78 78 if (JRF_STATIC) if (JRF_STATIC)
79 79 set(JRF_SHARED OFF) set(JRF_SHARED OFF)
80 set(JRF_TARGETS jrf-static)
81 80 else() else()
82 81 set(JRF_SHARED ON) set(JRF_SHARED ON)
83 set(JRF_TARGETS jrf-shared)
84 82 endif() endif()
85 83 endif() endif()
86 84
87 85 if (JRF_SHARED) if (JRF_SHARED)
88 86 add_library(jrf-shared SHARED ${SOURCE_FILES}) add_library(jrf-shared SHARED ${SOURCE_FILES})
87 list(APPEND TARGETS shared)
89 88 list(APPEND JRF_TARGETS jrf-shared) list(APPEND JRF_TARGETS jrf-shared)
90 89 endif() endif()
91 90 if(JRF_STATIC) if(JRF_STATIC)
92 91 add_library(jrf-static STATIC ${SOURCE_FILES}) add_library(jrf-static STATIC ${SOURCE_FILES})
92 list(APPEND TARGETS static)
93 93 list(APPEND JRF_TARGETS jrf-static) list(APPEND JRF_TARGETS jrf-static)
94 94 endif() endif()
95 95
 
... ... endif()
101 101
102 102 set(EXPORT_NAME jrf-${PROJECT_VERSION}) set(EXPORT_NAME jrf-${PROJECT_VERSION})
103 103
104 foreach(TARGET ${JRF_TARGETS})
105 target_include_directories(${TARGET} PUBLIC
104 foreach(TARGET ${TARGETS})
105 target_include_directories(jrf-${TARGET} PUBLIC
106 106 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
107 107 $<INSTALL_INTERFACE:include/${EXPORT_NAME}> $<INSTALL_INTERFACE:include/${EXPORT_NAME}>
108 108 ) )
109 target_link_libraries(${TARGET} PUBLIC jlib ${ZIP_LIB})
110 set_target_properties(${TARGET} PROPERTIES OUTPUT_NAME jrf)
109 target_link_libraries(jrf-${TARGET} PUBLIC jlib-${TARGET} ${ZIP_LIB})
110 set_target_properties(jrf-${TARGET} PROPERTIES OUTPUT_NAME jrf)
111 111
112 target_compile_options(${TARGET} PRIVATE
112 target_compile_options(jrf-${TARGET} PRIVATE
113 113 $<$<CONFIG:DEBUG>:-O0;-g3;-ggdb> $<$<CONFIG:DEBUG>:-O0;-g3;-ggdb>
114 114 $<$<CONFIG:RELEASE>:-O3> $<$<CONFIG:RELEASE>:-O3>
115 115 $<$<CONFIG:RELWITHDEBINFO>:-O3;-g3;-ggdb> $<$<CONFIG:RELWITHDEBINFO>:-O3;-g3;-ggdb>
116 116 ) )
117 target_compile_features(${TARGET} PUBLIC cxx_std_17)
117 target_compile_features(jrf-${TARGET} PUBLIC cxx_std_17)
118 118 if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
119 target_compile_options(${TARGET} PRIVATE
119 target_compile_options(jrf-${TARGET} PRIVATE
120 120 -Weverything -Weverything
121 121 -Wno-c++98-compat-pedantic -Wno-c++98-compat-pedantic
122 122 -Wno-c++11-compat-pedantic -Wno-c++11-compat-pedantic
 
... ... foreach(TARGET ${JRF_TARGETS})
127 127 ) )
128 128 endif() endif()
129 129 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
130 target_compile_options(${TARGET} PRIVATE -Wall -Wextra)
130 target_compile_options(jrf-${TARGET} PRIVATE -Wall -Wextra)
131 131 endif() endif()
132 132 if (JRF_NATIVE) if (JRF_NATIVE)
133 target_compile_options(${TARGET} PRIVATE -march=native)
133 target_compile_options(jrf-${TARGET} PRIVATE -march=native)
134 134 endif() endif()
135 135 if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
136 136 OR OR
137 137 CMAKE_CXX_COMPILER_ID STREQUAL "GCC") CMAKE_CXX_COMPILER_ID STREQUAL "GCC")
138 target_compile_options(${TARGET}
138 target_compile_options(jrf-${TARGET}
139 139 PRIVATE -fno-exceptions -fno-rtti -ffast-math PRIVATE -fno-exceptions -fno-rtti -ffast-math
140 140 ) )
141 141 endif() endif()
142 142
143 143 if (IS_TOP_LEVEL) if (IS_TOP_LEVEL)
144 install(TARGETS ${TARGET}
144 install(TARGETS jrf-${TARGET}
145 145 DESTINATION lib DESTINATION lib
146 EXPORT ${TARGET}
146 EXPORT jrf-${TARGET}
147 147 PUBLIC_HEADER DESTINATION include/${EXPORT_NAME} PUBLIC_HEADER DESTINATION include/${EXPORT_NAME}
148 148 ) )
149 install(EXPORT ${TARGET} DESTINATION cmake/${EXPORT_NAME})
149 install(EXPORT jrf-${TARGET} DESTINATION cmake/${EXPORT_NAME})
150 150 endif() endif()
151 151 endforeach() endforeach()
152 152
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/jrf

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

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

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