Add cmake project files for cpp/ directory and all relevant subdirecctories

+ Add Makefiles generated by CMake JIC make is preferred
+ Update cmake version, header comments, and project descriptions
This commit is contained in:
Shaun Reed 2021-04-27 23:42:12 -04:00
parent d4f6fb9d41
commit 8817a594be
39 changed files with 264 additions and 302 deletions

7
.gitignore vendored
View File

@ -1,6 +1,11 @@
build/ **/build/
**/.vscode **/.vscode
**/.idea/** **/.idea/**
**/driver **/driver
**/*.o **/*.o
**/cmake-build-debug/** **/cmake-build-debug/**
**/CMakeCache.txt
**/cmake_install.cmake
**/CMakeFiles/**
**/Makefile
**/*.cbp

22
cpp/CMakeLists.txt Normal file
View File

@ -0,0 +1,22 @@
###############################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: A root project for practicing C++ ##
## This project can be built to debug and run all nested projects ##
## Or, any subdirectory with a project() statement can be selected ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
##############################################################################
#
cmake_minimum_required(VERSION 3.15)
project(
#[[NAME]] Klips
VERSION 1.0
DESCRIPTION "A root project for several small cpp practice projects"
LANGUAGES CXX
)
add_subdirectory(cmake)
add_subdirectory(datastructs)
add_subdirectory(sdl-cmake)

View File

@ -10,6 +10,9 @@ shaunrd0/klips/cpp/
└── sdl-cmake # Barebones sdl application written in C++ built with cmake └── sdl-cmake # Barebones sdl application written in C++ built with cmake
``` ```
This directory contains a `CMakeLists.txt`, which can be selected to open as a
project within your preferred IDE. From there, all nested examples can be built,
debugged, and ran.
In general, if a `CMakeLists.txt` is included in the project's root directory, In general, if a `CMakeLists.txt` is included in the project's root directory,
we can build the example with the following commands we can build the example with the following commands
@ -19,7 +22,7 @@ mkdir build && cd build
cmake .. && cmake --build . cmake .. && cmake --build .
``` ```
If cmake is not being used in a project, it can be built with `g++` manually using If cmake is not being used in a project, it can be built with `g++` manually using
the commands outlined in `*/.vscode/tasks.json`, or by using VSCode to open the example the commands outlined in `*/.vscode/tasks.json`, or by using VSCode to open the example
and running the build task. and running the build task.

View File

@ -1,12 +1,14 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2019 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: A template project for getting started working with CMake ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
#
# Define the version of CMake # Define the version of CMake
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 3.15)
# Define the your project name # Define the your project name
project(cmake-template) project(cmake-template)
@ -17,4 +19,3 @@ include_directories(./include)
# Point CMake to look for more CMakeLists within the following directories # Point CMake to look for more CMakeLists within the following directories
add_subdirectory(src) add_subdirectory(src)
add_subdirectory(apps) add_subdirectory(apps)

View File

@ -1,6 +1,6 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2019 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################

View File

@ -1,6 +1,6 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2019 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################

View File

@ -0,0 +1,29 @@
###############################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: A root project for practicing C++ data structure implementations ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
##############################################################################
#
cmake_minimum_required(VERSION 3.15)
project (
#[[NAME]] DataStructures
VERSION 1.0
DESCRIPTION "A project for practicing various data structures in C++"
LANGUAGES CXX
)
add_subdirectory(binarysearchtree)
add_subdirectory(circledoublelist)
add_subdirectory(circlesinglelist)
add_subdirectory(doublelist)
add_subdirectory(maxheap)
add_subdirectory(queuelist)
add_subdirectory(singlelist)
add_subdirectory(stacklist)
add_subdirectory(vector)
# Add subdirectory for examples of templated data stuctures
add_subdirectory(templates)

View File

@ -1,14 +1,13 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: A basic CMakeLists configuration to test BST implementation ## ## About: A basic CMakeLists configuration to test BST implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(BinarySearchTree) project(BinarySearchTree)
# Define source files # Define source files

View File

@ -1,14 +1,12 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a circular doubly linked list implementation ## ## About: An example of a circular doubly linked list implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
# Define the project name # Define the project name
project(CircleDouble) project(CircleDouble)

View File

@ -1,23 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp circledoublelist.o
${CXX} ${CXXFLAGS} driver.cpp circledoublelist.o -o driver
###############################################################################
# CircleDoubleList
###############################################################################
circledoublelist.o: circledoublelist.cpp circledoublelist.h
${CXX} ${CXXFLAGS} -c circledoublelist.cpp -o circledoublelist.o
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,14 +1,12 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a circular singly linked list implementation ## ## About: An example of a circular singly linked list implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
# Define the project name # Define the project name
project(CircleSingle) project(CircleSingle)

View File

@ -1,23 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp circlesinglelist.o
${CXX} ${CXXFLAGS} driver.cpp circlesinglelist.o -o driver
###############################################################################
# CircleSingleList
###############################################################################
circlesinglelist.o: circlesinglelist.cpp circlesinglelist.h
${CXX} ${CXXFLAGS} -c circlesinglelist.cpp -o circlesinglelist.o
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,14 +1,12 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a doubly linked list implementation ## ## About: An example of a doubly linked list implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
# Define the project name # Define the project name
project(DoubleList) project(DoubleList)

View File

@ -1,23 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp doublelist.o
${CXX} ${CXXFLAGS} driver.cpp doublelist.o -o driver
###############################################################################
# DoubleList
###############################################################################
doublelist.o: doublelist.cpp doublelist.h
${CXX} ${CXXFLAGS} -c doublelist.cpp -o doublelist.o
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,14 +1,12 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a max heap implementation ## ## About: An example of a max heap implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(MaxHeap) project(MaxHeap)

View File

@ -1,14 +1,12 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a queue implementation ## ## About: An example of a queue implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(Queue) project(Queue)

View File

@ -1,23 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp queuelist.o
${CXX} ${CXXFLAGS} driver.cpp queuelist.o -o driver
###############################################################################
# QueueList
###############################################################################
queuelist.o: queuelist.cpp queuelist.h
${CXX} ${CXXFLAGS} -c queuelist.cpp -o queuelist.o
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,14 +1,12 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a singly linked list implementation ## ## About: An example of a singly linked list implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(SingleList) project(SingleList)

View File

@ -1,23 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp singlelist.o
${CXX} ${CXXFLAGS} driver.cpp singlelist.o -o driver
###############################################################################
# SingleList
###############################################################################
singlelist.o: singlelist.cpp singlelist.h
${CXX} ${CXXFLAGS} -c singlelist.cpp -o singlelist.o
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,14 +1,13 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a stack implementation using linked lists ## ## About: An example of a stack implementation using linked lists ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt ## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(Stack) project(Stack)

View File

@ -1,23 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp stacklist.o
${CXX} ${CXXFLAGS} driver.cpp stacklist.o -o driver
###############################################################################
# StackList
###############################################################################
stacklist.o: stacklist.cpp stacklist.h
${CXX} ${CXXFLAGS} -c stacklist.cpp -o stacklist.o
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -0,0 +1,21 @@
###############################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: A root project for practicing templated data structures in C++ ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
##############################################################################
#
cmake_minimum_required(VERSION 3.15)
project (
#[[NAME]] TemplatedStructures
VERSION 1.0
DESCRIPTION "A project for practicing templated data structures in C++"
LANGUAGES CXX
)
add_subdirectory(doublelist)
add_subdirectory(queuelist)
add_subdirectory(stacklist)
add_subdirectory(vector)

View File

@ -1,18 +1,16 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a doubly linked list implementation ## ## About: An example of a doubly linked list implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
# Define the project name # Define the project name
project(DoubleList) project(DoubleList)
# Define source files # Define source files
set(SRC driver.cpp) set(SRC driver.cpp)
# Build an executable # Build an executable
add_executable(DoubleListDriver ${SRC}) add_executable(TemplatedDoubleListDriver ${SRC})

View File

@ -1,16 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp
${CXX} ${CXXFLAGS} driver.cpp -o driver
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,18 +1,16 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a queue implementation ## ## About: An example of a queue implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(Queue) project(Queue)
# Define source files # Define source files
set(SRC driver.cpp) set(SRC driver.cpp)
# Build an executable # Build an executable
add_executable(QueueDriver ${SRC}) add_executable(TemplatedQueueDriver ${SRC})

View File

@ -1,16 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp
${CXX} ${CXXFLAGS} driver.cpp -o driver
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,18 +1,16 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: An example of a stack implementation using linked lists ## ## About: An example of a stack implementation using linked lists ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## CMakeLists.txt
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(Stack) project(Stack)
# Define source files # Define source files
set(SRC driver.cpp) set(SRC driver.cpp)
# Build an executable # Build an executable
add_executable(StackDriver ${SRC}) add_executable(TemplatedStackDriver ${SRC})

View File

@ -1,16 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp
${CXX} ${CXXFLAGS} driver.cpp -o driver
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,18 +1,17 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: A basic CMakeLists configuration to test Vector implementation ## ## About: A basic CMakeLists configuration to test Vector implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## vector.cpp ## vector.cpp
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(VectorDriver) project(VectorDriver)
# Define source files # Define source files
set(SRC driver.cpp) set(SRC driver.cpp)
# Build an executable # Build an executable
add_executable(VectorDriver ${SRC}) add_executable(TemplatedVectorDriver ${SRC})

View File

@ -1,16 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp
${CXX} ${CXXFLAGS} driver.cpp -o driver
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -1,14 +1,13 @@
############################################################################### ###############################################################################
## Author: Shaun Reed ## ## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ## ## Legal: All Content (c) 2021 Shaun Reed, all rights reserved ##
## About: A basic CMakeLists configuration to test Vector implementation ## ## About: A basic CMakeLists configuration to test Vector implementation ##
## ## ## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
############################################################################## ##############################################################################
## vector.cpp ## vector.cpp
# #
cmake_minimum_required(VERSION 3.15)
cmake_minimum_required(VERSION 3.2)
# Define the project name # Define the project name
project(VectorDriver) project(VectorDriver)

View File

@ -1,23 +0,0 @@
CXX=g++
CXXFLAGS=-g -Wall
###############################################################################
# Driver
###############################################################################
driver: driver.cpp vector.o
${CXX} ${CXXFLAGS} driver.cpp vector.o -o driver
###############################################################################
# Vector
###############################################################################
vector.o: vector.cpp vector.h
${CXX} ${CXXFLAGS} -c vector.cpp -o vector.o
###############################################################################
# Clean
###############################################################################
clean:
rm -f *.o driver

View File

@ -0,0 +1,58 @@
###############################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2019 Shaun Reed, all rights reserved ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
###############################################################################
# Define CMake version
cmake_minimum_required(VERSION 3.16)
project( # Define project
invaders # Project name
DESCRIPTION "Space invaders remake using OpenGL and CPP"
LANGUAGES CXX
)
# Pass this to program to control debug output
option (EXE_BUILD "Should we build the executable?" ON)
add_library( # Add Library
lib-invaders # Library Name
"src/lib-invaders.cpp" # Sources..
"src/lib-invaders.h"
)
target_include_directories( # When calling library, include a directory
lib-invaders # Library name
PUBLIC #
"${CMAKE_CURRENT_SOURCE_DIR}" # Source directory of exe including our library
)
if (EXE_BUILD)
set(BUILD_STATUS "Building default executable")
include(FindOpenGL)
include(FindGLUT)
include_directories(${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIR})
add_executable( # Creating executable
invaders # Exe name
"app/invaders.cpp" # Exe Source(s)
)
# Link the executable with OpenGL libraries
target_link_libraries( # Linking the exe to library
invaders # Executable to link
PUBLIC #
lib-invaders # Library to link
${OPENGL_LIBRARIES}
)
# Link the executable with OpenGL Utility Toolkit
target_link_libraries( # Linking the exe to library
invaders # Executable to link
PUBLIC #
lib-invaders # Library to link
${GLUT_LIBRARIES}
)
endif()

View File

@ -21,13 +21,13 @@ option (DB_BUILD "Should we run the build in debug mode?" OFF)
option (EXE_BUILD "Should we build the executable?" ON) option (EXE_BUILD "Should we build the executable?" ON)
add_library( # Add Library add_library( # Add Library
lib-inherit # Library Name lib-sdl-test # Library Name
"src/lib-inherit.cpp" # Sources.. "src/lib-sdl-test.cpp" # Sources..
"src/lib-inherit.h" "src/lib-sdl-test.h"
) )
target_include_directories( # When calling library, include a directory target_include_directories( # When calling library, include a directory
lib-inherit # Library name lib-sdl-test # Library name
PUBLIC # PUBLIC #
"${CMAKE_CURRENT_SOURCE_DIR}" # Source directory of exe including our library "${CMAKE_CURRENT_SOURCE_DIR}" # Source directory of exe including our library
) )
@ -39,13 +39,13 @@ if (EXE_BUILD)
include_directories(${SDL2_INCLUDE_DIRS}) include_directories(${SDL2_INCLUDE_DIRS})
add_executable( # Creating executable add_executable( # Creating executable
inherited # Exe name sdl-test # Exe name
"apps/inherited.cpp" # Exe Source(s) "apps/sdl-test.cpp" # Exe Source(s)
) )
target_link_libraries( # Linking the exe to library target_link_libraries( # Linking the exe to library
inherited # Executable to link sdl-test # Executable to link
PRIVATE # PRIVATE #
lib-inherit # Library to link lib-sdl-test # Library to link
${SDL2_LIBRARIES} ${SDL2_LIBRARIES}
) )
elseif(DB_BUILD) elseif(DB_BUILD)
@ -61,7 +61,7 @@ elseif(DB_CONF)
# Configure header file with CMake variables defined in src/lib-inherit.h.in # Configure header file with CMake variables defined in src/lib-inherit.h.in
# @ONLY is specified, only variables of the form @VAR@ will be replaced and ${VAR} will be ignored. # @ONLY is specified, only variables of the form @VAR@ will be replaced and ${VAR} will be ignored.
# configure_file(src/lib-inherit.h src/lib-inherit.h @ONLY) # configure_file(src/lib-inherit.h src/lib-inherit.h @ONLY)
configure_file(apps/inherited.cpp apps/inherited.cpp @ONLY) configure_file(apps/sdl-test.cpp apps/sdl-test.cpp @ONLY)
# Create compile_commands.json for linter # Create compile_commands.json for linter
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

View File

@ -9,7 +9,7 @@
## apps/inherited.cpp ## apps/inherited.cpp
*/ */
#include <src/lib-inherit.h> #include <src/lib-sdl-test.h>
#include <iostream> #include <iostream>
//#include <string> //#include <string>

View File

@ -7,7 +7,7 @@
## src/lib-inherit.cpp ## src/lib-inherit.cpp
*/ */
#include <src/lib-inherit.h> #include <src/lib-sdl-test.h>
// Shape class definitions // Shape class definitions

View File

@ -0,0 +1,70 @@
###############################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2019 Shaun Reed, all rights reserved ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
##############################################################################
# Root CMakeLists.txt of cpp practice 4-inheritance
# Define CMake version
cmake_minimum_required(VERSION 3.15)
project( # Define project
inheritance # Project name
DESCRIPTION "Example project for class inheritance"
LANGUAGES CXX
)
# Pass this to program to control debug output
option (DB_CONF "Should we debug and configure files with cmake values?" ON)
option (DB_BUILD "Should we run the build in debug mode?" OFF)
option (EXE_BUILD "Should we build the executable?" ON)
add_library( # Add Library
lib-inherit # Library Name
"src/lib-inherit.cpp" # Sources..
"src/lib-inherit.h"
)
target_include_directories( # When calling library, include a directory
lib-inherit # Library name
PUBLIC #
"${CMAKE_CURRENT_SOURCE_DIR}" # Source directory of exe including our library
)
if (EXE_BUILD)
set(BUILD_STATUS "Building default executable")
include(FindPkgConfig)
pkg_search_module(SDL2 REQUIRED sdl2)
include_directories(${SDL2_INCLUDE_DIRS})
add_executable( # Creating executable
inherited # Exe name
"apps/inherited.cpp" # Exe Source(s)
)
target_link_libraries( # Linking the exe to library
inherited # Executable to link
PRIVATE #
lib-inherit # Library to link
${SDL2_LIBRARIES}
)
elseif(DB_BUILD)
set(BUILD_STATUS "Building in debug mode")
# Create compile_commands.json for linter
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
target_compile_definitions(inherited PRIVATE BUILD_STATUS=${BUILD_STATUS})
elseif(DB_CONF)
set(BUILD_STATUS "Building in debug mode, configuring files")
# Configure header file with CMake variables defined in src/lib-inherit.h.in
# @ONLY is specified, only variables of the form @VAR@ will be replaced and ${VAR} will be ignored.
# configure_file(src/lib-inherit.h src/lib-inherit.h @ONLY)
configure_file(apps/inherited.cpp apps/inherited.cpp @ONLY)
# Create compile_commands.json for linter
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
endif()
#target_compile_definitions(inherited PRIVATE BUILD_STATUS=${BUILD_STATUS})