From 8673d8373feab118482d56cd70ef725b1f8bc2bb Mon Sep 17 00:00:00 2001 From: "Michael Gene Brockus (Dreamer)" Date: Sun, 30 Mar 2025 16:22:03 -0500 Subject: [PATCH 1/4] remove cmake --- .github/workflows/cmake_ci.yml | 282 --------------------------------- CMakeLists.txt | 17 -- code/CMakeLists.txt | 4 - code/logic/CMakeLists.txt | 47 ------ 4 files changed, 350 deletions(-) delete mode 100644 .github/workflows/cmake_ci.yml delete mode 100644 CMakeLists.txt delete mode 100644 code/CMakeLists.txt delete mode 100644 code/logic/CMakeLists.txt diff --git a/.github/workflows/cmake_ci.yml b/.github/workflows/cmake_ci.yml deleted file mode 100644 index c8757ec..0000000 --- a/.github/workflows/cmake_ci.yml +++ /dev/null @@ -1,282 +0,0 @@ -name: CMake CI - -on: - push: - paths: - - "**.c" - - "**.h" - - "**.cpp" - - "**.hpp" - - "**.py" - - "**.build" - - "**.options" - pull_request: - paths: - - "**.c" - - "**.h" - - "**.cpp" - - "**.hpp" - - "**.py" - - "**.build" - - "**.options" - -jobs: - build_msvc: - name: Building on MSVC ${{ matrix.msvc_version }} - runs-on: windows-latest - strategy: - matrix: - msvc_version: [2015, 2017, 2019, 2022] - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Install CMake and Ninja - shell: pwsh - run: | - python -m pip install --upgrade pip - python -m pip install cmake ninja - if ($env:msvc_version -eq "2015") { - choco install visualstudio2015buildtools --package-parameters "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --includeRecommended --includeOptional --passive" - } elseif ($env:msvc_version -eq "2017") { - choco install visualstudio2017buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --includeOptional --passive" - } elseif ($env:msvc_version -eq "2019") { - choco install visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --includeOptional --passive" - } elseif ($env:msvc_version -eq "2022") { - choco install visualstudio2022buildtools --package-parameters "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --includeOptional --passive" - } - $env:CC="cl.exe" - $env:CXX="cl.exe" - - - name: Configure CMake - run: cmake -S . -B build_msvc_${{ matrix.msvc_version }} -G "Ninja" -DWITH_TEST=ON - - - name: Build - run: cmake --build build_msvc_${{ matrix.msvc_version }} --config Release - - - name: Upload Build Log - if: failure() - uses: actions/upload-artifact@v4 - with: - name: windows_msvc_${{ matrix.msvc_version }}_cmake_buildlog - path: build_msvc_${{ matrix.msvc_version }}/build.ninja - - build_macosx: - name: Building on macOS with Xcode ${{ matrix.xcode_version }} - runs-on: macos-latest - strategy: - matrix: - xcode_version: ["15.2", "15.3"] - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Install Xcode - run: sudo xcode-select --switch /Applications/Xcode_${{ matrix.xcode_version }}.app - - - name: Install CMake and Ninja - run: | - python -m pip install cmake ninja - - - name: Configure CMake - run: cmake -S . -B builddir -G "Ninja" -DWITH_TEST=ON - - - name: Build - run: cmake --build builddir --config Release - - - name: Upload Build Log - if: failure() - uses: actions/upload-artifact@v4 - with: - name: macos_xcode_${{ matrix.xcode_version }}_cmake_buildlog - path: builddir/build.ninja - - build_msys: - name: Building on MSYS ${{ matrix.architecture }} - runs-on: windows-latest - strategy: - matrix: - architecture: [x86, x64] - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up MSYS2 - uses: msys2/setup-msys2@v2 - with: - update: true - - - name: Set environment variables - run: | - echo "CC=/mingw${{ matrix.architecture }}/bin/gcc.exe" >> $GITHUB_ENV - echo "CXX=/mingw${{ matrix.architecture }}/bin/g++.exe" >> $GITHUB_ENV - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Install CMake and Ninja - run: | - python -m pip install cmake ninja - - - name: Configure CMake - run: cmake -S . -B builddir -G "Ninja" -DWITH_TEST=ON - - - name: Build - run: cmake --build builddir --config Release - - - name: Upload Build Log - if: failure() - uses: actions/upload-artifact@v4 - with: - name: msys_${{ matrix.architecture }}_cmake_buildlog - path: builddir/build.ninja - - build_posix: - name: Build on Linux ${{ matrix.distro }} - runs-on: ubuntu-latest - - strategy: - matrix: - distro: [ubuntu, fedora, archlinux, debian] - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Cache Docker layers - uses: actions/cache@v4 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ matrix.distro }} - restore-keys: | - ${{ runner.os }}-buildx - - - name: Build Docker Image - run: | - docker build \ - --file .github/ciimage/Dockerfile.${{ matrix.distro }} \ - --tag ${GITHUB_REPOSITORY}:${{ matrix.distro }} . - - - name: Run CMake Build in Docker Container - run: | - docker run --rm \ - -v ${{ github.workspace }}:/workspace \ - -w /workspace \ - ${GITHUB_REPOSITORY}:${{ matrix.distro }} \ - /bin/bash -c " - apt-get update - cmake -S . -B builddir -G Ninja -DWITH_TEST=ON - cmake --build builddir --config Release" - - build_cross: - name: Building on Bedrock ${{ matrix.architecture }} - runs-on: ubuntu-latest # Using Ubuntu as the base system for cross-compilation - - strategy: - matrix: - architecture: [arm, arm64, mips, mipsel, riscv64, ppc, ppc64le, sparc64, s390x] - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Install Cross-Compilation Toolchain - run: | - sudo apt-get update - if [ "${{ matrix.architecture }}" == "arm" ]; then - sudo apt-get install -y gcc-arm-linux-gnueabi g++-arm-linux-gnueabi - elif [ "${{ matrix.architecture }}" == "arm64" ]; then - sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - elif [ "${{ matrix.architecture }}" == "mips" ]; then - sudo apt-get install -y gcc-mips-linux-gnu g++-mips-linux-gnu - elif [ "${{ matrix.architecture }}" == "mipsel" ]; then - sudo apt-get install -y gcc-mipsel-linux-gnu g++-mipsel-linux-gnu - elif [ "${{ matrix.architecture }}" == "riscv64" ]; then - sudo apt-get install -y gcc-riscv64-linux-gnu g++-riscv64-linux-gnu - elif [ "${{ matrix.architecture }}" == "ppc" ]; then - sudo apt-get install -y gcc-powerpc-linux-gnu g++-powerpc-linux-gnu - elif [ "${{ matrix.architecture }}" == "ppc64le" ]; then - sudo apt-get install -y gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu - elif [ "${{ matrix.architecture }}" == "sparc64" ]; then - sudo apt-get install -y gcc-sparc64-linux-gnu g++-sparc64-linux-gnu - elif [ "${{ matrix.architecture }}" == "s390x" ]; then - sudo apt-get install -y gcc-s390x-linux-gnu g++-s390x-linux-gnu - fi - - - name: Set Cross-Compilation Environment Variables - run: | - if [ "${{ matrix.architecture }}" == "arm" ]; then - echo "CC=arm-linux-gnueabi-gcc" >> $GITHUB_ENV - echo "CXX=arm-linux-gnueabi-g++" >> $GITHUB_ENV - elif [ "${{ matrix.architecture }}" == "arm64" ]; then - echo "CC=aarch64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX=aarch64-linux-gnu-g++" >> $GITHUB_ENV - elif [ "${{ matrix.architecture }}" == "mips" ]; then - echo "CC=mips-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX=mips-linux-gnu-g++" >> $GITHUB_ENV - elif [ "${{ matrix.architecture }}" == "mipsel" ]; then - echo "CC=mipsel-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX=mipsel-linux-gnu-g++" >> $GITHUB_ENV - elif [ "${{ matrix.architecture }}" == "riscv64" ]; then - echo "CC=riscv64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX=riscv64-linux-gnu-g++" >> $GITHUB_ENV - elif [ "${{ matrix.architecture }}" == "ppc" ]; then - echo "CC=powerpc-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX=powerpc-linux-gnu-g++" >> $GITHUB_ENV - elif [ "${{ matrix.architecture }}" == "ppc64le" ]; then - echo "CC=powerpc64le-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX=powerpc64le-linux-gnu-g++" >> $GITHUB_ENV - elif [ "${{ matrix.architecture }}" == "sparc64" ]; then - echo "CC=sparc64-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX=sparc64-linux-gnu-g++" >> $GITHUB_ENV - elif [ "${{ matrix.architecture }}" == "s390x" ]; then - echo "CC=s390x-linux-gnu-gcc" >> $GITHUB_ENV - echo "CXX=s390x-linux-gnu-g++" >> $GITHUB_ENV - fi - - - name: Install CMake and Ninja - run: | - python -m pip install cmake ninja - - - name: Configure CMake - run: cmake -S . -B builddir -G "Ninja" -DWITH_TEST=ON - - - name: Build - run: cmake --build builddir --config Release - - - name: Upload Build Log - if: failure() - uses: actions/upload-artifact@v4 - with: - name: cross_${{ matrix.architecture }}_cmake_buildlog - path: builddir/build.ninja \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index f7f4218..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -# CMakeLists.txt -cmake_minimum_required(VERSION 3.13.4) - -# Project metadata -project(FossilIo VERSION 0.1.6 LANGUAGES C CXX) - -# Set the C and C++ standards -set(CMAKE_C_STANDARD 11) -set(CMAKE_C_EXTENSIONS OFF) # Ensure strict C11 compliance -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_EXTENSIONS OFF) # Ensure strict C++20 compliance - -# Options -option(WITH_TEST "Enable Fossil Test for this project" OFF) - -# Add subdirectory for source code -add_subdirectory(code) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt deleted file mode 100644 index ddb5b2e..0000000 --- a/code/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -# code/CMakeLists.txt - -# Add subdirectories for logic and tests -add_subdirectory(logic) \ No newline at end of file diff --git a/code/logic/CMakeLists.txt b/code/logic/CMakeLists.txt deleted file mode 100644 index fded761..0000000 --- a/code/logic/CMakeLists.txt +++ /dev/null @@ -1,47 +0,0 @@ -# code/logic/CMakeLists.txt - -# Define the include directories -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) - -# Collect all header files in logic/fossil/* -file(GLOB HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/fossil/*.h) - -# List the source files -set(TEST_CODE - serialize.c - parser.c - error.c - input.c - output.c - soap.c - stream.c - keyboard.c - network.c - cstring.c -) - -# Create the library target -add_library(fossil-io STATIC ${TEST_CODE} ${HEADER_FILES}) - -# Link the math library -target_link_libraries(fossil-io PUBLIC m) - -# Link to Winsock library only on Windows -if(WIN32) - target_link_libraries(fossil-io PUBLIC ws2_32) -endif() - -# Set the library to be installed -install(TARGETS fossil-io - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin -) - -# Install the header files -install(FILES ${HEADER_FILES} DESTINATION include/fossil) - -# Declare the dependency -add_library(fossil_io_dep INTERFACE) -target_link_libraries(fossil_io_dep INTERFACE fossil-io) -target_include_directories(fossil_io_dep INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) \ No newline at end of file From 9cb4bbf2f20fd2cc690492ba80529de206b343f1 Mon Sep 17 00:00:00 2001 From: "Michael Gene Brockus (Dreamer)" Date: Sun, 30 Mar 2025 16:25:29 -0500 Subject: [PATCH 2/4] update README --- README.md | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/README.md b/README.md index 16c9e10..f6a26e4 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ Fossil IO is an extensive and versatile library meticulously crafted to manage i To get started with Fossil Io, ensure you have the following installed: - **Meson Build System**: If you don’t have Meson installed, follow the installation instructions on the official [Meson website](https://mesonbuild.com/Getting-meson.html). -- **CMake Build System**: If you don’t have CMake installed, follow the installation instructions on the official [CMake website](https://cmake.org/getting-started/). ### Adding Fossil Io Dependency @@ -38,7 +37,7 @@ To get started with Fossil Io, ensure you have the following installed: # ====================== [wrap-git] url = https://github.com/fossillogic/fossil-io.git - revision = v0.1.6 + revision = v0.1.7 [provide] fossil-io = fossil_io_dep @@ -53,36 +52,6 @@ To get started with Fossil Io, ensure you have the following installed: --- -#### Adding Fossil Io Dependency With CMake - -To use Fossil Io with CMake, follow these steps: - -1. **Install CMake**: - Install CMake version `3.13.4` or newer: - - ```sh - python -m pip install cmake # To install CMake - python -m pip install --upgrade cmake # To upgrade CMake - ``` - -2. **Find and Integrate Fossil Io**: - After installing CMake, you can integrate Fossil Io as a dependency. Add the following lines to your `CMakeLists.txt` file: - - ```cmake - # Find Fossil Io package - find_package(FossilIo REQUIRED) - - # Link the Fossil Io to your project - target_link_libraries(your_target FossilIo) - ``` - -3. **Configure Your CMake Project**: - Make sure to configure your CMake project to include the necessary paths and dependencies for Fossil Io. Typically, you’ll want to make sure the `FossilIo` library is correctly linked in your build configuration. - - This will ensure that Fossil Io is included and properly built with your project. - ---- - **Note**: For the best experience, always use the latest release of Fossil Io. Visit the [Fossil Io Releases](https://github.com/fossillogic/fossil-io/releases) page for the latest versions. ## Configure Options From 5d5ccf4cd9e8a836e7e4b9f088517ea432ada827 Mon Sep 17 00:00:00 2001 From: "Michael Gene Brockus (Dreamer)" Date: Sun, 30 Mar 2025 16:28:07 -0500 Subject: [PATCH 3/4] update wrap file for fossil test --- subprojects/fossil-test.wrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subprojects/fossil-test.wrap b/subprojects/fossil-test.wrap index 1318b84..e2e25ff 100644 --- a/subprojects/fossil-test.wrap +++ b/subprojects/fossil-test.wrap @@ -3,7 +3,7 @@ # ====================== [wrap-git] url = https://github.com/fossillogic/fossil-test.git -revision = v1.1.6 +revision = v1.1.7 [provide] fossil-test = fossil_test_dep From 08af54e8373b33947a5fabe4acad190c031a3a1b Mon Sep 17 00:00:00 2001 From: "Michael Gene Brockus (Dreamer)" Date: Sun, 30 Mar 2025 16:30:25 -0500 Subject: [PATCH 4/4] update version number --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 7f30091..c2dd054 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ project('Fossil IO', 'c', 'cpp', meson_version: '>=1.3.0', license: 'MPL-2.0', - version: '0.1.6', + version: '0.1.7', default_options: ['c_std=c17,c18', 'cpp_std=c++20']) subdir('code')