diff --git a/.gitignore b/.gitignore index 9994ccd..41be3c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -build/ -.cache \ No newline at end of file +build*/ +.cache +.zed diff --git a/CMakeLists.txt b/CMakeLists.txt index 7513617..5014712 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.22) -project(ctrff) +project(ctrff VERSION 0.2.0) + +include(GNUInstallDirs) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED true) @@ -9,7 +11,7 @@ option(CTRFF_DESKTOP OFF "Buid for Desktop Platform") option(CTRFF_3DS OFF "Build lib for 3ds") option(CTRFF_SHARED OFF) -if(${CTRFF_3DS}) +if(CTRFF_3DS) set(CTRFF_DESKTOP OFF CACHE BOOL) set(CTRFF_BUILD_GUI OFF CACHE BOOL) set(CTRFF_SHARED OFF CACHE BOOL) @@ -35,18 +37,55 @@ set(CTRFF_SOURCE source/smdh.cpp ) -if(${CTRFF_SHARED}) -add_library(ctrff SHARED ${CTRFF_SOURCE}) -target_compile_definitions(ctrff PUBLIC CTRFF_SHARED) -target_compile_definitions(ctrff PRIVATE CTRFF_BUILD_SHARED) +if(CTRFF_SHARED) + add_library(ctrff SHARED ${CTRFF_SOURCE}) + target_compile_definitions(ctrff PUBLIC CTRFF_SHARED) + target_compile_definitions(ctrff PRIVATE CTRFF_BUILD_SHARED) else() -add_library(ctrff STATIC ${CTRFF_SOURCE}) + add_library(ctrff STATIC ${CTRFF_SOURCE}) endif() -target_include_directories(ctrff PUBLIC include) -if(${CTRFF_DESKTOP}) +target_include_directories(ctrff + PUBLIC + $ + $ +) +add_library(ctrff::ctrff ALIAS ctrff) + +if(CTRFF_DESKTOP) add_subdirectory(tools) endif() -install(TARGETS ctrff) -install(DIRECTORY include DESTINATION ".") +install(TARGETS ctrff + EXPORT ctrffTargets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) +install(EXPORT ctrffTargets + FILE ctrffTargets.cmake + NAMESPACE ctrff:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ctrff +) + +include(CMakePackageConfigHelpers) +configure_package_config_file( + cmake/ctrffConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/ctrffConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ctrff +) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/ctrffConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/ctrffConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/ctrffConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ctrff +) diff --git a/cmake/ctrffConfig.cmake.in b/cmake/ctrffConfig.cmake.in new file mode 100644 index 0000000..b285964 --- /dev/null +++ b/cmake/ctrffConfig.cmake.in @@ -0,0 +1,3 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/ctrffTargets.cmake") \ No newline at end of file diff --git a/tools/ctrff/CMakeLists.txt b/tools/ctrff/CMakeLists.txt index 9cbd148..d2d2241 100644 --- a/tools/ctrff/CMakeLists.txt +++ b/tools/ctrff/CMakeLists.txt @@ -18,5 +18,8 @@ target_include_directories(test PUBLIC include ${CMAKE_CURRENT_SOURCE_DIR}/../../vendor/cli-fancy/include ) target_link_libraries(test PUBLIC ctrff) +set_target_properties(ctrff-cli PROPERTIES + OUTPUT_NAME ctrff +) install(TARGETS ctrff-cli) diff --git a/tools/ctrff/source/main.cpp b/tools/ctrff/source/main.cpp index 12ef797..ead8ac8 100644 --- a/tools/ctrff/source/main.cpp +++ b/tools/ctrff/source/main.cpp @@ -10,7 +10,7 @@ #include /** Import palladium stb image */ -#include +#include #define STB_IMAGE_WRITE_IMPLEMENTATION #include /** Could not use the palladium func due to only using headers */ @@ -121,7 +121,7 @@ void MakeSMDH(const cf7::command::ArgumentList &data) { smdh.SetAuthor(a); std::vector img; int w, h, c; - ctrff::u8 *buf = stbi_load(i.c_str(), &w, &h, &c, 4); + ctrff::u8 *buf = pdi_load(i.c_str(), &w, &h, &c, 4); if (buf == nullptr) { cf7::PrintFancy({ std::make_pair("Error", cf7::col(190, 0, 0)), diff --git a/vendor/palladium b/vendor/palladium index eb5d5f9..8ee7006 160000 --- a/vendor/palladium +++ b/vendor/palladium @@ -1 +1 @@ -Subproject commit eb5d5f99743bccfa42d589a9e078c0e2cbecbaa0 +Subproject commit 8ee7006d2cd70726b54cae2462e7c8a9bfc45ad9