commit d79a99468a158e2b37739404073dcfaab8c12308 Author: Amadey Vorontsov Date: Mon May 18 19:19:36 2026 +0000 bump to 0.1.1 diff --git a/Cargoxx.lock b/Cargoxx.lock new file mode 100644 index 0000000..7799617 --- /dev/null +++ b/Cargoxx.lock @@ -0,0 +1,7 @@ +flake_utils_rev = '11707dc2f618dd54ca8739b309ec4fc024de578b' +nixpkgs_rev = 'd233902339c02a9c334e7e593de68855ad26c4cb' +version = 1 + +[[package]] +name = 'greeter' +version = '0.1.1' diff --git a/Cargoxx.toml b/Cargoxx.toml new file mode 100644 index 0000000..857b811 --- /dev/null +++ b/Cargoxx.toml @@ -0,0 +1,6 @@ +[package] +name = "greeter" +version = "0.1.1" +edition = "cpp23" +license = "MIT" +description = "minimal cargoxx demo library — greets you" diff --git a/build/CMakeLists.txt b/build/CMakeLists.txt new file mode 100644 index 0000000..874370b --- /dev/null +++ b/build/CMakeLists.txt @@ -0,0 +1,76 @@ +cmake_minimum_required(VERSION 3.30) + +set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) +set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "d0edc3af-4c50-42ea-a356-e2862fe7a444") +set(CMAKE_CXX_MODULE_STD ON) + +project(greeter VERSION 0.1.1 LANGUAGES CXX) + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +# Generated by cargoxx — do not edit. +# Source of truth: ../Cargoxx.toml + +set(CMAKE_CXX_STANDARD 23) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS ON) +set(CMAKE_CXX_SCAN_FOR_MODULES ON) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +add_compile_options(-Wall -Wextra -Wpedantic -Wconversion -Wno-missing-field-initializers) + +# ----- library target ----- +add_library(greeter STATIC) +target_sources(greeter + PUBLIC + FILE_SET CXX_MODULES BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/.. FILES + ../src/lib.cppm +) +target_compile_features(greeter PUBLIC cxx_std_23) + +# ----- install + package-config + pkg-config ----- +install(TARGETS greeter + EXPORT greeterTargets + FILE_SET CXX_MODULES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/greeter + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(EXPORT greeterTargets + FILE greeterTargets.cmake + NAMESPACE greeter:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/greeter) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/greeterConfig.cmake.in [[ +@PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +include("${CMAKE_CURRENT_LIST_DIR}/greeterTargets.cmake") +check_required_components(greeter) +]]) +configure_package_config_file( + ${CMAKE_CURRENT_BINARY_DIR}/greeterConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/greeterConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/greeter) +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/greeterConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/greeterConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/greeterConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/greeter) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/greeter.pc.in [[ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${prefix}/${CMAKE_INSTALL_LIBDIR} +includedir=${prefix}/${CMAKE_INSTALL_INCLUDEDIR} + +Name: @PROJECT_NAME@ +Version: @PROJECT_VERSION@ +Description: @PROJECT_NAME@ +Cflags: -I${includedir} +Libs: -L${libdir} -l@PROJECT_NAME@ +]]) +configure_file(${CMAKE_CURRENT_BINARY_DIR}/greeter.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/greeter.pc @ONLY) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/greeter.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) diff --git a/build/flake.nix b/build/flake.nix new file mode 100644 index 0000000..4b88fd0 --- /dev/null +++ b/build/flake.nix @@ -0,0 +1,28 @@ +{ + description = "greeter"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/d233902339c02a9c334e7e593de68855ad26c4cb"; + flake-utils.url = "github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { inherit system; }; + in { + devShell = pkgs.gcc15Stdenv.mkDerivation { + name = "shell"; + version = "1.0"; + nativeBuildInputs = [ + pkgs.ninja + pkgs.cmake + ]; + buildInputs = [ + ]; + hardeningDisable = [ + "all" + ]; + }; + }); +} diff --git a/src/lib.cppm b/src/lib.cppm new file mode 100644 index 0000000..23ae5c8 --- /dev/null +++ b/src/lib.cppm @@ -0,0 +1,8 @@ +export module greeter; +import std; + +export namespace greeter { +auto hello(std::string_view who) -> std::string { + return std::format("Hello from greeter, {}!", who); +} +} // namespace greeter