Use VCPKG and reorganization
* Remove non-pacman exercises. * Use vcpkg instead of conan ( make vcpkg a submodule) * Merge the readmem these will need to be improve later
This commit is contained in:
parent
9966892620
commit
164db664ef
58 changed files with 47 additions and 570 deletions
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "vcpkg"]
|
||||
path = vcpkg
|
||||
url = https://github.com/microsoft/vcpkg.git
|
|
@ -1,20 +1,15 @@
|
|||
#This needs to be set before project()
|
||||
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake
|
||||
CACHE STRING "Vcpkg toolchain file")
|
||||
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
project(modern_cpp_exercises )
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# Download automatically, you can also just copy the conan.cmake file
|
||||
if (NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
|
||||
message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
|
||||
file(DOWNLOAD "https://github.com/conan-io/cmake-conan/raw/v0.15/conan.cmake"
|
||||
"${CMAKE_BINARY_DIR}/conan.cmake")
|
||||
endif ()
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(test)
|
||||
|
||||
include(${CMAKE_BINARY_DIR}/conan.cmake)
|
||||
conan_add_remote(NAME bincrafters INDEX 1 URL https://api.bintray.com/conan/bincrafters/public-conan)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}/lcd/;${CMAKE_BINARY_DIR}/pacman/;${CMAKE_BINARY_DIR}/pomodoro/)
|
||||
|
||||
add_subdirectory(lcd)
|
||||
add_subdirectory(pacman)
|
||||
add_subdirectory(pomodoro)
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets/maze.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets/sprites32.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
|
|
24
LINUX.md
24
LINUX.md
|
@ -1,24 +0,0 @@
|
|||
[< Back](README.md)
|
||||
# Mod(C++) Linux (Ubuntu) Instructions
|
||||
|
||||
## Get Clion
|
||||
|
||||
https://www.jetbrains.com/clion/download/download-thanks.html
|
||||
|
||||
## Get Python 3
|
||||
|
||||
## Get Conan
|
||||
|
||||
pip3 install conan --upgrade
|
||||
|
||||
## Conan on Linux
|
||||
|
||||
Set this environment variable and Conan will tell you which packages you need to
|
||||
intall on Linux.
|
||||
CONAN_SYSREQUIRES_MODE=verify
|
||||
|
||||
In case of link errors around sndio, try to uninstall this package and rebuild the conan cache:
|
||||
~~~
|
||||
sudo apt remove libsndio-dev*
|
||||
~~~
|
||||
https://bugzilla.libsdl.org/show_bug.cgi?id=5105
|
37
README.md
37
README.md
|
@ -1,13 +1,32 @@
|
|||
![CMake](https://github.com/turtlesec-no/modern_cpp_exercises/workflows/CMake/badge.svg)
|
||||
# Mod(C++) Exercises
|
||||
# Mod(C++) - Pac-Man Exercise
|
||||
|
||||
## Exercises
|
||||
|
||||
* [LCD](lcd/README.md)
|
||||
* [Pac-Man](pacman/README.md)
|
||||
* [Pomodoro](pomodoro/README.md)
|
||||
## Setup VCPKG
|
||||
|
||||
## Build instructions
|
||||
On windows, run `.\vcpkg\bootstrap-vcpkg.bat`.
|
||||
On other platforms, run `./vcpkg/bootstrap-vcpkg.sh`
|
||||
|
||||
* [Windows](WINDOWS.md)
|
||||
* [Linux](LINUX.md)
|
||||
On all platform run `./vcpkg/vcpkg install sdl2-image gtest`
|
||||
|
||||
## Keep PacMan Score
|
||||
|
||||
* Implement score by implementing eating of pellets by Pac-Man
|
||||
* Use the existing test.cpp file for TDD scoring
|
||||
* Pellets are worth 10 points - SuperPellets 50 points
|
||||
* Implement support for the pellets to be eaten
|
||||
* Implement support for counting pellets eaten by PacMan
|
||||
* (Extra: Display score - if you have a LOT of time)
|
||||
|
||||
## Make a ghost
|
||||
|
||||
* Use the PacMan class as inspiration
|
||||
* Pic a sprite from [sprites32.png](assets/sprites32.png) for the ghost
|
||||
* Make an algorithm for movement (simple is fine)
|
||||
* For fancy algorithm see next section
|
||||
|
||||
### Ghosts characters and algorithms
|
||||
These will probably become relevant
|
||||
* https://en.wikipedia.org/wiki/Ghosts_(Pac-Man)
|
||||
* https://youtu.be/ataGotQ7ir8
|
||||
* https://gameinternals.com/understanding-pac-man-ghost-behavior
|
||||
* https://www.gamasutra.com/view/feature/3938/the_pacman_dossier.php?print=1
|
||||
|
|
26
WINDOWS.md
26
WINDOWS.md
|
@ -1,26 +0,0 @@
|
|||
[< Back](README.md)
|
||||
# Mod(C++) Windows Instructions
|
||||
|
||||
## Windows Toolchain
|
||||
|
||||
Visual Studio Community 2019 - latest (MSVC 19.28.29334.0)
|
||||
|
||||
## Get Clion
|
||||
|
||||
https://www.jetbrains.com/clion/download/download-thanks.html
|
||||
|
||||
## Get Python 3
|
||||
|
||||
https://docs.python.org/3/using/windows.html#the-full-installer
|
||||
|
||||
## Get Conan
|
||||
|
||||
pip3 install conan --upgrade
|
||||
|
||||
## Currently does not work on windows - Get Clang
|
||||
|
||||
Clang 10 works seamlessly with Conan (version 1.31.4) - with 11 you have to update your
|
||||
<userhome>/.conan/settings.yml file, add "11" to the list at "clang: version:"
|
||||
|
||||
https://releases.llvm.org/download.html
|
||||
https://www.jetbrains.com/help/clion/quick-tutorial-on-configuring-clion-on-windows.html#clang-cl
|
Before Width: | Height: | Size: 870 KiB After Width: | Height: | Size: 870 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
@ -1,7 +0,0 @@
|
|||
conan_cmake_run(CONANFILE conanfile.py BASIC_SETUP CMAKE_TARGETS BUILD missing)
|
||||
|
||||
include_directories(lib)
|
||||
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(test)
|
|
@ -1,6 +0,0 @@
|
|||
[< Back](../README.md)
|
||||
# Mod(C++) - Lcd Exercise
|
||||
|
||||
* Add tests in [lcd_tests.cpp](test/lcd_tests.cpp) and implementation in
|
||||
[lcd.cpp](lib/lcd.cpp) to support printing all two digit numbers
|
||||
* Set the MAX variable in [main.cpp](src/main.cpp) to 99 and print all the numbers
|
|
@ -1,15 +0,0 @@
|
|||
from conans import ConanFile, CMake
|
||||
|
||||
class ConanDependencies(ConanFile):
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
generators = "cmake", "cmake_find_package"
|
||||
default_options = {}
|
||||
|
||||
def requirements(self):
|
||||
self.requires("gtest/1.10.0")
|
||||
|
||||
def imports(self):
|
||||
self.copy("*.dll", dst="bin", src="bin")
|
||||
self.copy("*.dylib*", dst="bin", src="lib")
|
||||
self.copy('*.so*', dst='lib', src='lib')
|
||||
self.copy("license*", dst="licenses", folder=True, ignore_case=True)
|
|
@ -1,3 +0,0 @@
|
|||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")
|
||||
add_library(liblcd ${sources})
|
||||
target_link_libraries(liblcd)
|
|
@ -1,40 +0,0 @@
|
|||
#include "lcd.hpp"
|
||||
|
||||
lcd_grid lcd(const std::string & s1,
|
||||
const std::string & s2,
|
||||
const std::string & s3) {
|
||||
lcd_grid result;
|
||||
result.push_back(s1);
|
||||
result.push_back(s2);
|
||||
result.push_back(s3);
|
||||
return result;
|
||||
}
|
||||
|
||||
const lcd_grid digits[] =
|
||||
{
|
||||
lcd(" _ ",
|
||||
"| |",
|
||||
"|_|"
|
||||
),
|
||||
lcd(" ",
|
||||
" |",
|
||||
" |"
|
||||
),
|
||||
lcd(" _ ",
|
||||
" _|",
|
||||
"|_ "
|
||||
),
|
||||
};
|
||||
|
||||
lcd_grid lcd(int value) {
|
||||
if (value < 10)
|
||||
return digits[value];
|
||||
else {
|
||||
lcd_grid lhs = lcd(value / 10);
|
||||
lcd_grid rhs = digits[value % 10];
|
||||
return lcd(
|
||||
lhs[0] + ' ' + rhs[0],
|
||||
lhs[1] + ' ' + rhs[1],
|
||||
lhs[2] + ' ' + rhs[2]);
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
typedef std::vector<std::string> lcd_grid;
|
||||
|
||||
lcd_grid lcd(int value);
|
||||
|
||||
lcd_grid lcd(const std::string & s1,
|
||||
const std::string & s2,
|
||||
const std::string & s3);
|
|
@ -1,68 +0,0 @@
|
|||
#include "lcd.hpp"
|
||||
|
||||
lcd_grid lcd(const std::string & s1,
|
||||
const std::string & s2,
|
||||
const std::string & s3) {
|
||||
lcd_grid result;
|
||||
result.push_back(s1);
|
||||
result.push_back(s2);
|
||||
result.push_back(s3);
|
||||
return result;
|
||||
}
|
||||
|
||||
const lcd_grid digits[] =
|
||||
{
|
||||
lcd(" _ ",
|
||||
"| |",
|
||||
"|_|"
|
||||
),
|
||||
lcd(" ",
|
||||
" |",
|
||||
" |"
|
||||
),
|
||||
lcd(" _ ",
|
||||
" _|",
|
||||
"|_ "
|
||||
),
|
||||
lcd(" _ ",
|
||||
" _|",
|
||||
" _|"
|
||||
),
|
||||
lcd(" ",
|
||||
"|_|",
|
||||
" |"
|
||||
),
|
||||
lcd(" _ ",
|
||||
"|_ ",
|
||||
" _|"
|
||||
),
|
||||
lcd(" _ ",
|
||||
"|_ ",
|
||||
"|_|"
|
||||
),
|
||||
lcd(" _ ",
|
||||
" |",
|
||||
" |"
|
||||
),
|
||||
lcd(" _ ",
|
||||
"|_|",
|
||||
"|_|"
|
||||
),
|
||||
lcd(" _ ",
|
||||
"|_|",
|
||||
" |"
|
||||
),
|
||||
};
|
||||
|
||||
lcd_grid lcd(int value) {
|
||||
if (value < 10)
|
||||
return digits[value];
|
||||
else {
|
||||
lcd_grid lhs = lcd(value / 10);
|
||||
lcd_grid rhs = digits[value % 10];
|
||||
return lcd(
|
||||
lhs[0] + ' ' + rhs[0],
|
||||
lhs[1] + ' ' + rhs[1],
|
||||
lhs[2] + ' ' + rhs[2]);
|
||||
}
|
||||
}
|
|
@ -1,110 +0,0 @@
|
|||
#include <gtest/gtest.h>
|
||||
|
||||
#include "lcd.hpp"
|
||||
#include <iostream>
|
||||
|
||||
std::string to_string(const lcd_grid & grid) {
|
||||
std::stringstream output;
|
||||
for (const auto & str: grid)
|
||||
output << str;
|
||||
return output.str();
|
||||
}
|
||||
|
||||
void lcd_spec(int value, const lcd_grid & grid) {
|
||||
std::string expected = to_string(grid),
|
||||
actual = to_string(lcd(value));
|
||||
if (expected != actual) {
|
||||
std::cerr
|
||||
<< "lcd(" << value << ")\n"
|
||||
<< "expected==\n"
|
||||
<< expected << '\n'
|
||||
<< "actual==\n"
|
||||
<< actual << std::endl;
|
||||
std::exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(LcdTest, Zero) {
|
||||
lcd_spec(0, lcd(
|
||||
" _ ",
|
||||
"| |",
|
||||
"|_|"
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, One) {
|
||||
lcd_spec(1, lcd(
|
||||
" ",
|
||||
" |",
|
||||
" |"
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, Two) {
|
||||
lcd_spec(2, lcd(
|
||||
" _ ",
|
||||
" _|",
|
||||
"|_ "
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, Three) {
|
||||
lcd_spec(3, lcd(
|
||||
" _ ",
|
||||
" _|",
|
||||
" _|"
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, Four) {
|
||||
lcd_spec(4, lcd(
|
||||
" ",
|
||||
"|_|",
|
||||
" |"
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, Twelve) {
|
||||
lcd_spec(12, lcd(
|
||||
" _ ",
|
||||
" | _|",
|
||||
" | |_ "
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, TwentyFive) {
|
||||
lcd_spec(25, lcd(
|
||||
" _ _ ",
|
||||
" _| |_ ",
|
||||
"|_ _|"
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, SixtyFour) {
|
||||
lcd_spec(64, lcd(
|
||||
" _ ",
|
||||
"|_ |_|",
|
||||
"|_| |"
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, SeventyFour) {
|
||||
lcd_spec(74, lcd(
|
||||
" _ ",
|
||||
" | |_|",
|
||||
" | |"
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, EightyNine) {
|
||||
lcd_spec(89, lcd(
|
||||
" _ _ ",
|
||||
"|_| |_|",
|
||||
"|_| |"
|
||||
));
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
#include <iostream>
|
||||
#include "lcd.hpp"
|
||||
|
||||
static const int MAX = 100;
|
||||
|
||||
int main() {
|
||||
for (int i = 0; i < MAX; i++) {
|
||||
auto grid = lcd(i);
|
||||
for (const auto & line: grid)
|
||||
std::cout << line << "\n";
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")
|
||||
add_executable(lcd ${sources})
|
||||
target_link_libraries(lcd liblcd)
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#include <iostream>
|
||||
#include "lcd.hpp"
|
||||
|
||||
static const int MAX = 3;
|
||||
|
||||
int main() {
|
||||
for (int i = 0; i < MAX; i++) {
|
||||
auto grid = lcd(i);
|
||||
for (const auto & line: grid)
|
||||
std::cout << line << "\n";
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
enable_testing()
|
||||
find_package(GTest REQUIRED)
|
||||
|
||||
include(GoogleTest)
|
||||
|
||||
add_executable(lcd_tests lcd_tests.cpp)
|
||||
target_link_libraries(lcd_tests GTest::GTest liblcd)
|
||||
|
||||
gtest_discover_tests(lcd_tests TEST_PREFIX lcd:)
|
||||
add_test(NAME monolithic COMMAND lcd_tests)
|
|
@ -1,46 +0,0 @@
|
|||
#include <gtest/gtest.h>
|
||||
|
||||
#include "lcd.hpp"
|
||||
#include <iostream>
|
||||
|
||||
std::string to_string(const lcd_grid & grid) {
|
||||
std::stringstream output;
|
||||
for (const auto & str: grid)
|
||||
output << str;
|
||||
return output.str();
|
||||
}
|
||||
|
||||
void lcd_spec(int value, const lcd_grid & grid) {
|
||||
std::string expected = to_string(grid),
|
||||
actual = to_string(lcd(value));
|
||||
if (expected != actual) {
|
||||
std::cerr
|
||||
<< "lcd(" << value << ")\n"
|
||||
<< "expected==\n"
|
||||
<< expected << '\n'
|
||||
<< "actual==\n"
|
||||
<< actual << std::endl;
|
||||
std::exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(LcdTest, Zero) {
|
||||
lcd_spec(0, lcd(
|
||||
" _ ",
|
||||
"| |",
|
||||
"|_|"
|
||||
));
|
||||
}
|
||||
|
||||
TEST(LcdTest, Twelve) {
|
||||
lcd_spec(12, lcd(
|
||||
" _ ",
|
||||
" | _|",
|
||||
" | |_ "
|
||||
));
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
6
lib/CMakeLists.txt
Normal file
6
lib/CMakeLists.txt
Normal file
|
@ -0,0 +1,6 @@
|
|||
find_package(sdl2-image CONFIG REQUIRED)
|
||||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")
|
||||
add_library(libpacman ${sources})
|
||||
|
||||
target_include_directories(libpacman PUBLIC .)
|
||||
target_link_libraries(libpacman PUBLIC SDL2::SDL2-static SDL2::SDL2_image)
|
|
@ -1,12 +0,0 @@
|
|||
conan_cmake_run(CONANFILE conanfile.py BASIC_SETUP CMAKE_TARGETS BUILD missing)
|
||||
|
||||
find_package(sdl2 REQUIRED)
|
||||
find_package(sdl2_image REQUIRED)
|
||||
include_directories(lib ${sdl2_INCLUDE_DIRS} ${sdl2_image_INCLUDE_DIRS})
|
||||
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(test)
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets/maze.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets/sprites32.png DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
|
@ -1,25 +0,0 @@
|
|||
[< Back](../README.md)
|
||||
# Mod(C++) - Pac-Man Exercise
|
||||
|
||||
## Keep PacMan Score
|
||||
|
||||
* Implement score by implementing eating of pellets by Pac-Man
|
||||
* Use the existing test.cpp file for TDD scoring
|
||||
* Pellets are worth 10 points - SuperPellets 50 points
|
||||
* Implement support for the pellets to be eaten
|
||||
* Implement support for counting pellets eaten by PacMan
|
||||
* (Extra: Display score - if you have a LOT of time)
|
||||
|
||||
## Make a ghost
|
||||
|
||||
* Use the PacMan class as inspiration
|
||||
* Pic a sprite from [sprites32.png](assets/sprites32.png) for the ghost
|
||||
* Make an algorithm for movement (simple is fine)
|
||||
* For fancy algorithm see next section
|
||||
|
||||
### Ghosts characters and algorithms
|
||||
These will probably become relevant
|
||||
* https://en.wikipedia.org/wiki/Ghosts_(Pac-Man)
|
||||
* https://youtu.be/ataGotQ7ir8
|
||||
* https://gameinternals.com/understanding-pac-man-ghost-behavior
|
||||
* https://www.gamasutra.com/view/feature/3938/the_pacman_dossier.php?print=1
|
|
@ -1,20 +0,0 @@
|
|||
from conans import ConanFile, CMake
|
||||
|
||||
|
||||
class ConanDependencies(ConanFile):
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
generators = "cmake", "cmake_find_package"
|
||||
default_options = {
|
||||
"sdl2_image:jpg": "libjpeg"
|
||||
}
|
||||
|
||||
def requirements(self):
|
||||
self.requires("gtest/1.10.0")
|
||||
self.requires("sdl2/2.0.9@bincrafters/stable")
|
||||
self.requires("sdl2_image/2.0.4@bincrafters/stable")
|
||||
|
||||
def imports(self):
|
||||
self.copy("*.dll", dst="bin", src="bin")
|
||||
self.copy("*.dylib*", dst="bin", src="lib")
|
||||
self.copy('*.so*', dst='lib', src='lib')
|
||||
self.copy("license*", dst="licenses", folder=True, ignore_case=True)
|
|
@ -1,8 +0,0 @@
|
|||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")
|
||||
add_library(libpacman ${sources})
|
||||
target_link_libraries(libpacman sdl2::sdl2 sdl2_image::sdl2_image)
|
||||
|
||||
#target_compile_options(libpacman PRIVATE -fsanitize=address) # /MD will be used implicitly
|
||||
#target_link_directories(libpacman PRIVATE "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/2019/Community/VC/Tools/Llvm/x64/lib/clang/10.0.0/lib/windows")
|
||||
#target_link_libraries(libpacman PRIVATE sdl2::sdl2 sdl2_image::sdl2_image clang_rt.asan_dynamic-x86_64 clang_rt.asan_dynamic_runtime_thunk-x86_64)
|
||||
#target_link_options(libpacman PRIVATE /wholearchive:clang_rt.asan_dynamic_runtime_thunk-x86_64.lib /wholearchive:clang_rt.asan_dynamic-x86_64.lib)
|
|
@ -1,16 +0,0 @@
|
|||
conan_cmake_run(CONANFILE conanfile.py BASIC_SETUP CMAKE_TARGETS BUILD missing)
|
||||
|
||||
configure_file(${CMAKE_CURRENT_BINARY_DIR}/qt.conf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qt.conf COPYONLY)
|
||||
|
||||
find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
include_directories(lib)
|
||||
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(test)
|
|
@ -1,2 +0,0 @@
|
|||
[< Back](../README.md)
|
||||
# Mod(C++) - Pomodoro Exercise
|
|
@ -1,23 +0,0 @@
|
|||
from conans import ConanFile, CMake
|
||||
|
||||
class ConanDependencies(ConanFile):
|
||||
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
generators = "cmake", "qt", "virtualrunenv"
|
||||
|
||||
default_options = {}
|
||||
|
||||
def requirements(self):
|
||||
self.requires("gtest/1.10.0")
|
||||
self.requires("qt/5.15.1@bincrafters/stable")
|
||||
|
||||
def imports(self):
|
||||
self.copy("*.dll", dst="bin", src="bin")
|
||||
self.copy("*.dylib*", dst="bin", src="lib")
|
||||
self.copy('*.so*', dst='lib', src='lib')
|
||||
self.copy('*', dst='libexec', src='libexec')
|
||||
self.copy('*', dst='plugins', src='plugins')
|
||||
self.copy('*', dst='qml', src='qml')
|
||||
self.copy('*', dst='translations', src='translations')
|
||||
self.copy('*', dst='resources', src='resources')
|
||||
self.copy("license*", dst="licenses", folder=True, ignore_case=True)
|
|
@ -1,3 +0,0 @@
|
|||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")
|
||||
add_library(libpomodoro ${sources})
|
||||
target_link_libraries(libpomodoro Qt5::Core Qt5::Gui Qt5::Widgets)
|
|
@ -1 +0,0 @@
|
|||
#include "Pomodoro.hpp"
|
|
@ -1,8 +0,0 @@
|
|||
#ifndef POMODORO_POMODORO_HPP
|
||||
#define POMODORO_POMODORO_HPP
|
||||
|
||||
class Pomodoro {
|
||||
|
||||
};
|
||||
|
||||
#endif //POMODORO_POMODORO_HPP
|
|
@ -1,3 +0,0 @@
|
|||
file(GLOB_RECURSE sources CONFIGURE_DEPENDS "*.cpp")
|
||||
add_executable(pomodoro ${sources})
|
||||
target_link_libraries(pomodoro libpomodoro Qt5::Core Qt5::Gui Qt5::Widgets)
|
|
@ -1,11 +0,0 @@
|
|||
#include <QApplication>
|
||||
#include <QPushButton>
|
||||
#include "Pomodoro.hpp"
|
||||
|
||||
int main(int argc, char * argv[]) {
|
||||
QApplication app(argc, argv);
|
||||
QPushButton button("Hello world !");
|
||||
Pomodoro pomodoro;
|
||||
button.show();
|
||||
return app.exec();
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
enable_testing()
|
||||
find_package(GTest REQUIRED)
|
||||
|
||||
include(GoogleTest)
|
||||
|
||||
add_executable(pomodoro_tests tests.cpp)
|
||||
target_link_libraries(pomodoro_tests GTest::GTest libpomodoro)
|
||||
|
||||
gtest_discover_tests(pomodoro_tests TEST_PREFIX pomodoro:)
|
||||
add_test(NAME monolithic COMMAND pomodoro_tests)
|
|
@ -1,10 +0,0 @@
|
|||
#include <gtest/gtest.h>
|
||||
|
||||
TEST(PomodoroTest, Init) {
|
||||
EXPECT_EQ(1, 2);
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
1
vcpkg
Submodule
1
vcpkg
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 5a271a9290282e09149401486f88dc106dc65b71
|
Loading…
Reference in a new issue