No description
Find a file
2023-03-05 16:34:40 +02:00
.vscode Parsing DCFH header 2022-09-23 09:41:30 +03:00
build Initial implementation 2022-09-22 13:55:33 +03:00
data Saving image 2022-09-23 13:24:28 +03:00
src Final 2022-09-23 14:48:49 +03:00
.clang-format Initial implementation 2022-09-22 13:55:33 +03:00
.clang-tidy Done 2022-09-23 14:23:52 +03:00
.cmake-format cmake-format 2023-03-05 16:34:40 +02:00
.gitignore cmake-format 2023-03-05 16:34:40 +02:00
CMakeLists.txt cmake-format 2023-03-05 16:34:40 +02:00
conanfile.py Saving image 2022-09-23 13:24:28 +03:00
README.md Final 2022-09-23 14:48:49 +03:00

dc_task

Direct Conversion engineering task. Uses C++20 standard features. Currently, fmt library is used instead of std::format because it is not as of yet implemented in GCC.

Dependencies

For dependencies, I use conan package manager to pull them all. This project's dependencies can be seen in conanfile.py.

How to compile it

To compile the project, first you'll need to install conan to manage the dependencies:

pip install conan

If you don't have pip installed, refer to this conan installation guide.

Next, we're creating two profiles for Debug and Release:

cd build
# We're building missing packages from source
conan install .. -s build_type=Debug -s cppstd=20 -if Debug --build=missing
conan install .. -s build_type=Release -s cppstd=20 -if Release --build=missing

After that, the easiest way to build the application is by using VS Code CMake Tools extension.

Building manually (without CMake Tools)

If you're using other editor or don't want to use the CMake Tools extension, you'll have to build the project manually. First, use CMake to generate the appropriate build files (replace Release with Debug if needed):

cd Release
cmake ../.. -DCMAKE_BUILD_TYPE=Release

Using generated files, you can compile the project:

cmake --build . # For MacOS/Linux
cmake --build . --config Release # For Windows you have to specify build type

Now, enjoy your freshly minted binaries inside the bin folder!

Launching the program

Internal code uses relative paths for loading sample data, so make sure that your working directory is the project root. Here's an example of how you can run the binary:

./build/Release/bin/dc_task ./data/000000.DCF

Cleaning up build files

If you want to clean up the build files and binaries, you can use git from the project root directory:

git clean -dfX build