Class: 24C06
Group 3 - 24C06
Members
- Lê Minh Đức - 24127025
- Đoàn Quốc Bảo - 24127326
- Lê Trần Quang Huy - 24127396
- Tôn Thất Nhật Minh - 24127083
<base-directory>/
├── bin/ # binary file (after building)
├── data/ # app data
├── imgui-sdl3/ # ImGui library
├── include/ # include directory
├──core/ # core app header files
├──gui/ # gui header files
├──nlohmann/ # nlohmann/json library
└──*.hpp # other header files
├── SDL3 # SDL3 library, Windows only
├── SDL3_image # SDL3_image library, Windows only
├── src/ # include directory
├──core/ # core app source files
├──gui/ # gui source files
├──event_dispatcher.cpp # gui notify mechanism
├──main.cpp # main class
├──sha256.cpp # SHA256 hash function, self-implemented
└──texture_cache.cpp # caching book images when drawing gui
├── xmake.lua # Xmake build script
├── .gitignore
└── README.md
- nlohmann/json (included)
- Dear ImGui (included, using SDL3renderer backend)
- SDL 3.20 or later (static library included for Windows only)
- SDL3_image (static library included for Windows only)
- C++17-compatible GCC compiler
- Xmake 3.0 or later
Simply running Xmake on base directory
xmake build release
Binaries reside in bin directory. Note that it must be run in bin directory, with data directory located outside in order to load application data
You will need to install image processing libraries (libpng for PNG, libjpeg-turbo for jpeg, ...). Consult the SDL3_image CMake tutorial for more detail
Prebuilt binaries is available in Release, with libpng and libjpeg-turbo included
See Compiling on Linux, from step 1b
sudo apt install libsdl3-dev libsdl3-image-dev
sudo pacman -S sdl3
yay -S sdl3_image
SDL3 from Arch do not support static linking
Consult SDL3 repository and SDL3_image repository for build instruction
Run Xmake on base directory
xmake build release
By default Linux & MacOS target do not static on release build (due to dependencies problems). This can be modified in xmake.lua
Binaries reside in bin directory. Note that it must be run in bin directory, with data directory located outside in order to load application data
SDL3_image in either static or dynamic build will dynamically detect image processing libraries like libpng, libibjpeg-turbo, libwebp, ...
If you built the library by youself, double check if these libraries present
If you installed prebuilt packages, these dependencies are included
The binaries and source code are released for educational purposes
The images of book covers used within this application are for demonstration and educational purposes only. These images are intended to provide a realistic visual representation of a library system's interface and are not intended for commercial use or distribution. The copyright for all book covers and related artwork belongs to their respective publishers, authors, and artists. No ownership of these images is claimed or implied by the creators of this project.