From 432bb3614f1893602743593b26758684006a9e40 Mon Sep 17 00:00:00 2001 From: Quinta <0pietroquintavalle0@gmail.com> Date: Fri, 12 Jul 2024 18:01:54 +0200 Subject: [PATCH] Im loosing my fucking mind :^) --- .gitignore | 2 ++ Dockerfile | 46 +++++++++++++++++++++++------------- README.md | 69 +++++++++++++++++++++++++++++++----------------------- vcpkg.json | 6 ++--- 4 files changed, 75 insertions(+), 48 deletions(-) diff --git a/.gitignore b/.gitignore index ff9047e..0f3ba64 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /cmake-build-debug/ +/vcpkg_installed/ +/build/ diff --git a/Dockerfile b/Dockerfile index 8729d77..71f6193 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,38 +1,52 @@ +# Use an official Ubuntu as a parent image FROM ubuntu:20.04 +# Prevent interactive prompts ENV DEBIAN_FRONTEND=noninteractive +# Install dependencies RUN apt-get update && apt-get install -y \ build-essential \ - cmake \ git \ curl \ zip \ unzip \ tar \ pkg-config \ - libx11-dev \ - libxrandr-dev \ - libxinerama-dev \ - libxcursor-dev \ - libxi-dev \ - libgl1-mesa-dev \ - libglu1-mesa-dev \ - && rm -rf /var/lib/apt/lists/* + software-properties-common \ + tzdata + +# Set timezone to UTC +RUN ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime && \ + dpkg-reconfigure --frontend noninteractive tzdata + +# Install CMake +RUN apt-get update \ + && apt-get install -y wget \ + && wget https://github.com/Kitware/CMake/releases/download/v3.28.0/cmake-3.28.0-linux-x86_64.sh \ + && sh cmake-3.28.0-linux-x86_64.sh --prefix=/usr/local --skip-license \ + && rm cmake-3.28.0-linux-x86_64.sh # Install vcpkg RUN git clone https://github.com/Microsoft/vcpkg.git /vcpkg \ - && /vcpkg/bootstrap-vcpkg.sh \ - && /vcpkg/vcpkg integrate install + && cd /vcpkg \ + && git pull \ + && ./bootstrap-vcpkg.sh \ + && ./vcpkg integrate install + +# Set environment variables for vcpkg +ENV VCPKG_ROOT=/vcpkg +ENV VCPKG_DEFAULT_TRIPLET=x64-linux # Set the working directory WORKDIR /app -# Copy the project files +# Copy the current directory contents into the container at /app COPY . . -# Install dependencies using vcpkg -RUN /vcpkg/vcpkg install $(cat vcpkg.json | jq -r '.dependencies[]') +# Install project dependencies using vcpkg +RUN /vcpkg/vcpkg update \ + && /vcpkg/vcpkg install $(cat vcpkg.json | jq -r '.dependencies[]') # Build the project RUN mkdir build \ @@ -40,5 +54,5 @@ RUN mkdir build \ && cmake .. -DCMAKE_TOOLCHAIN_FILE=/vcpkg/scripts/buildsystems/vcpkg.cmake \ && cmake --build . -# Set the entrypoint -CMD ["./build/gravity"] \ No newline at end of file +# Specify the command to run the executable +CMD ["./build/gravity"] diff --git a/README.md b/README.md index 6442497..1be2aa2 100644 --- a/README.md +++ b/README.md @@ -68,9 +68,9 @@ The program uses OpenGL to render the 3D scene: # How to Use & Installation -### Prerequisites +## Prerequisites - C++ compiler with C++17 support -- CMake (version 3.10 or higher) +- CMake (version 3.28 or higher) - OpenGL libraries - GLFW3 - GLM (OpenGL Mathematics) @@ -78,34 +78,37 @@ The program uses OpenGL to render the 3D scene: ### Building from Source 1. Clone the repository: -```bash -git clone https://github.com/Quinta0/gravity.git -cd gravity -``` -2. Install vcpkg and dependencies: -```bash -git clone https://github.com/Microsoft/vcpkg.git -./vcpkg/bootstrap-vcpkg.sh # On Windows, use bootstrap-vcpkg.bat -./vcpkg/vcpkg install -``` -3. Create a build directory and navigate to it: -```bash -mkdir build -cd build -``` -4. Generate the build files with CMake: -```bash -cmake .. -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake -``` -5. Build the project: -```bash -cmake --build . -``` -6. Run the simulator: -```bash -./gravity -``` + ```bash + git clone https://github.com/Quinta0/gravity.git + cd gravity + ``` +2. Install vcpkg: + ```bash + git clone https://github.com/Microsoft/vcpkg.git + cd vcpkg + ./bootstrap-vcpkg.sh # On Windows, use bootstrap-vcpkg.bat + ./vcpkg integrate install + cd .. + ``` + +3. Install dependencies using vcpkg: + ```bash + ./vcpkg/vcpkg install freeglut glew glm vcpkg-cmake opengl glfw3 + ``` + +4. Create a build directory and run CMake: + ```bash + mkdir build + cd build + cmake -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake .. + cmake --build . + ``` + +5. Run the simulator: + ```bash + ./gravity + ``` ### Using Docker If you prefer to use Docker, follow these steps: @@ -113,3 +116,11 @@ If you prefer to use Docker, follow these steps: 1. Ensure Docker is installed on your system. 2. Build the Docker image: + ```bash + docker build -t gravity-simulator . + ``` + +3. Run the Docker container: + ```bash + docker run --rm gravity-simulator + ``` \ No newline at end of file diff --git a/vcpkg.json b/vcpkg.json index d165fcb..1b085e9 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -2,9 +2,9 @@ "dependencies": [ "freeglut", "glew", + "glfw3", "glm", - "vcpkg-cmake", "opengl", - "glfw3" + "vcpkg-cmake" ] -} \ No newline at end of file +}