commit 35886611bf7f2f617b8d2673b3cbfd72d9ba40ca Author: Aaron Helton Date: Sat Jan 1 18:42:29 2022 -0500 Initial Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1e871f3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +.clangd/ +.idea/ +cmake-build-*/ +build/ +bin/ +*.o +*.exe +*.so +compile_commands.json diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5e6a6a8 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,30 @@ +cmake_minimum_required(VERSION 3.0 FATAL_ERROR) +project(EmberLibPlus CXX) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +# Export compile commands by default. +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + +# I shamelessly stole this from https://blog.kitware.com/cmake-and-the-default-build-type/ +# Set a default build type if none was specified +set(default_build_type "Release") +if(EXISTS "${CMAKE_SOURCE_DIR}/.git") + set(default_build_type "Debug") +endif() +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "Setting build type to '${default_build_type}' as none was specified.") + set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) + # Set the possible values of build type for cmake-gui + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) +include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) +add_definitions(-DHAVE_CONFIG_H) +set(CONFIG_HEADER ${CMAKE_CURRENT_BINARY_DIR/config.h}) + +add_subdirectory(src) +add_subdirectory(demo) diff --git a/cmake/config.h.in b/cmake/config.h.in new file mode 100644 index 0000000..fb53303 --- /dev/null +++ b/cmake/config.h.in @@ -0,0 +1,23 @@ +/*-*- mode:C; -*- */ +/* config.h. Generated from build/cmake/config.h.in by cmake configure */ + +/* + * Ensure we have C99-style int64_t, etc, all defined + */ + +#cmakedefine HAVE_INTMAX_T +#cmakedefine HAVE_UINTMAX_T + +/* Define to 'int' if doesn't define. */ +#cmakedefine pid_t ${pid_t} + +/* Define intmax_t and uintmax_t if they are not already defined */ +#if !defined(HAVE_INTMAX_T) +typedef int64_t intmax_t; +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#endif + +#if !defined(HAVE_UINTMAX_T) +typedef uint64_t uintmax_t; +#endif diff --git a/demo/CMakeLists.txt b/demo/CMakeLists.txt new file mode 100644 index 0000000..57acc19 --- /dev/null +++ b/demo/CMakeLists.txt @@ -0,0 +1,11 @@ +set(DEMO_SOURCES demo.cpp) + +add_executable(demo EXCLUDE_FROM_ALL ${DEMO_SOURCES}) +target_link_libraries(demo PRIVATE EmberLibPlus) +target_include_directories(demo PRIVATE ${EmberLibPlus_INCLUDE_DIRS}) + +add_custom_command( + TARGET demo POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Test.txt ${CMAKE_CURRENT_BINARY_DIR}/Test.txt + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Test.txt +) \ No newline at end of file diff --git a/demo/Test.txt b/demo/Test.txt new file mode 100644 index 0000000..6854a67 --- /dev/null +++ b/demo/Test.txt @@ -0,0 +1,3 @@ +This is a test file. +It contains 3 lines of text. +This is a haiku \ No newline at end of file diff --git a/demo/demo.cpp b/demo/demo.cpp new file mode 100644 index 0000000..23c2973 --- /dev/null +++ b/demo/demo.cpp @@ -0,0 +1,10 @@ +/* + * Created by Aaron Helton on 01/01/22 + */ +#include + +int main(int argc, char **argv) +{ + print_hello(); + return 0; +} \ No newline at end of file diff --git a/include/EmberLibPlus/Util/SQLite.hpp b/include/EmberLibPlus/Util/SQLite.hpp new file mode 100644 index 0000000..6df0cf9 --- /dev/null +++ b/include/EmberLibPlus/Util/SQLite.hpp @@ -0,0 +1,10 @@ +// +// Created by Aaron Helton on 1/1/22. +// + +#ifndef EMBERLIB_SQLITE_HPP +#define EMBERLIB_SQLITE_HPP + +void print_hello(); + +#endif //EMBERLIB_SQLITE_HPP diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..be380f7 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,5 @@ +set(sources + Util/SQLite/SQLiteDB.cpp) + +add_library(EmberLibPlus STATIC ${headers} ${sources}) +target_include_directories(EmberLibPlus PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../include) diff --git a/src/Util/SQLite/SQLiteDB.cpp b/src/Util/SQLite/SQLiteDB.cpp new file mode 100644 index 0000000..d2732ce --- /dev/null +++ b/src/Util/SQLite/SQLiteDB.cpp @@ -0,0 +1,8 @@ +#include + +#include + +void print_hello() +{ + std::cout << "Hello, World! Fuck you." << std::endl; +} \ No newline at end of file