Skip to content

n0f4ph4mst3r/SimpleFTP

Repository files navigation

Build Status Build Status Build Status Build Status Build Status Github Releases

SimpleFTP

Description

A simple FTP client for working with files.

IMPORTANT! The version is unstable, so use it to work with small files/directories. Make sure your server supports the RFC 2428 and RFC 3659 specifications (in particular, commands such as EPSV and MLSD).

Build

Prerequisites

Cmake

On Windows, please use the prebuilt binaries. Ensure you select one of the options to add cmake to the system path.

On Linux, cmake is usually available from the system package manager. Alternatively, sudo pip3 install cmake can be used to install the latest version of CMake.

Vcpkg

Clone the repo with the --recurse-submodules flag

git clone --recurse-submodules https://github.com/n0f4ph4mst3r/SimpleFTP

Run ./vcpkg/bootstrap-vcpkg.sh or .\vcpkg\bootstrap-vcpkg.bat.

Building

Windows

I build using Microsoft Visual Studio 2019. However, it is likely possible to build it with Visual Studio 2022.

Linux

I use GCC 9, but any compilers supporting C++ 20 functions should work.

Building on Windows

  1. Clone this repository from GitHub project.

For example, in the git-bash run:

git clone --recurse-submodules https://github.com/n0f4ph4mst3r/SimpleFTP
  1. Run .\vcpkg\bootstrap-vcpkg.bat.

  2. Configure project using CMake:

    $ mkdir build && cd build
    $ cmake .. -G "Visual Studio 16 2019"
    
  3. Open Visual Studio project:

    $ .\\SimpleFTP.sln
    

    and build using the IDE.

Linux & Other OS

  1. Clone repository from GitHub project.

    git clone --recurse-submodules https://github.com/n0f4ph4mst3r/SimpleFTP
    
  2. Run ./vcpkg/bootstrap-vcpkg.sh.

  3. Configure project using CMake:

    $ mkdir build && cd build
    $ cmake .. -G "Unix Makefiles" 
    

    Ninja generator working too:

    $ cmake .. -G "Ninja" 
    

    Use -DCMAKE_BUILD_TYPE=Debug for debug configuration.

  4. Install project

    Makefiles:

    $ make install
    

    Ninja:

    $ ninja install
    
  5. Test the build:

    $ cd ../bin
    $ ./ClientApp