From fa55fd8c0663a83c8681efc7bed929a877443c3d Mon Sep 17 00:00:00 2001 From: cat Date: Mon, 15 Sep 2025 03:10:51 +0300 Subject: [PATCH] Genesis Commit --- .gitignore | 50 ++++++++++++++++++++++++++++++++++ CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++ ChargeShadersConfig.cmake.in | 6 ++++ LICENSE | 18 ++++++++++++ README.md | 3 ++ src/ChargeShaders.hpp | 6 ++++ 6 files changed, 136 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 ChargeShadersConfig.cmake.in create mode 100644 LICENSE create mode 100644 README.md create mode 100644 src/ChargeShaders.hpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..81c5340 --- /dev/null +++ b/.gitignore @@ -0,0 +1,50 @@ +# ---> CMake +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps +CMakeUserPresets.json + +# ---> C++ +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +build/ +.cache/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..2b3c5ce --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.10) + +project(ChargeShaders VERSION 1.0) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) +set(CMAKE_MODULE_PATH "modules/" ${CMAKE_MODULE_PATH}) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fsanitize=address") +endif() + +find_package(Corrade REQUIRED Main) +find_package(Magnum REQUIRED GL) +find_package(PkgConfig REQUIRED) + +add_library(ChargeShaders SHARED "src/ChargeShaders.hpp") + +target_link_libraries(ChargeShaders PRIVATE Corrade::Main Magnum::Magnum + Magnum::GL) + +target_include_directories( + ChargeShaders + PUBLIC $ + $ + $) + +# Library +install( + TARGETS ChargeShaders + EXPORT ChargeShadersTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin) + +# include +install(FILES src/ChargeShaders.hpp DESTINATION include/Charge) + +install( + EXPORT ChargeShadersTargets + FILE ChargeShadersTargets.cmake + NAMESPACE ChargeShaders:: + DESTINATION lib/cmake/ChargeShaders) + +include(CMakePackageConfigHelpers) + +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/ChargeShadersConfig.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/ChargeShadersConfig.cmake" + INSTALL_DESTINATION lib/cmake/ChargeShaders) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ChargeShadersConfig.cmake" + DESTINATION lib/cmake/ChargeShaders) diff --git a/ChargeShadersConfig.cmake.in b/ChargeShadersConfig.cmake.in new file mode 100644 index 0000000..e1523be --- /dev/null +++ b/ChargeShadersConfig.cmake.in @@ -0,0 +1,6 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/ChargeShadersTargets.cmake") +message(STATUS "Found ChargeShaders!") + +check_required_components(ChargeShaders) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9053497 --- /dev/null +++ b/LICENSE @@ -0,0 +1,18 @@ +MIT License + +Copyright (c) 2025 cat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..c0d1b5c --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# ChargeShaders + +A collection of Shaders for primarily Magnum graphics. diff --git a/src/ChargeShaders.hpp b/src/ChargeShaders.hpp new file mode 100644 index 0000000..24695a7 --- /dev/null +++ b/src/ChargeShaders.hpp @@ -0,0 +1,6 @@ +#ifndef CHARGE_SHADER_BASE_H +#define CHARGE_SHADER_BASE_H +#include + +namespace ChargeShaders {} // namespace ChargeShaders +#endif