commit 8e1842d4123946f9c8aa186d5afe4d870c4c24af Author: Evan Burkey Date: Sun Nov 16 17:27:53 2025 -0800 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..de08f6d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +cmake-build-* \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..8f00c8e --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 4.0) +project(edbg LANGUAGES CXX) +set(CMAKE_CXX_STANDARD 20) + +find_package(PkgConfig REQUIRED) +pkg_check_modules(libedit REQUIRED IMPORTED_TARGET libedit) + +include(CTest) + +add_subdirectory(src) +add_subdirectory(tools) + +if(BUILD_TESTING) + find_package(Catch2 CONFIG REQUIRED) + add_subdirectory(test) +endif() diff --git a/include/libedbg/libedbg.hpp b/include/libedbg/libedbg.hpp new file mode 100644 index 0000000..0515776 --- /dev/null +++ b/include/libedbg/libedbg.hpp @@ -0,0 +1,8 @@ +#ifndef LIBEDBG_INCLUDE_LIBEDBG_H +#define LIBEDBG_INCLUDE_LIBEDBG_H + +namespace edbg { + void hello(); +} + +#endif //LIBEDBG_INCLUDE_LIBEDBG_H \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..fa4fb50 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,39 @@ +add_library(libedbg libedbg.cpp) +add_library(edbg::libedbg ALIAS libedbg) + +set_target_properties( + libedbg + PROPERTIES OUTPUT_NAME edbg +) + +target_compile_features(libedbg PUBLIC cxx_std_20) + +target_include_directories( + libedbg + PUBLIC + $ + $ + PRIVATE + ${CMAKE_SOURCE_DIR}/src/include +) + +include(GNUInstallDirs) +install(TARGETS libedbg + EXPORT edbg-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install( + DIRECTORY ${PROJECT_SOURCE_DIR}/include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install( + EXPORT edbg-targets + FILE edbg-config.cmake + NAMESPACE edbg:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/edbg +) \ No newline at end of file diff --git a/src/libedbg.cpp b/src/libedbg.cpp new file mode 100644 index 0000000..a35cf6c --- /dev/null +++ b/src/libedbg.cpp @@ -0,0 +1,6 @@ +#include +#include + +void edbg::hello() { + std::cout << "Hello edbg!\n"; +} \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..3843223 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,2 @@ +add_executable(tests tests.cpp) +target_link_libraries(tests PRIVATE edbg::libedbg Catch2::Catch2WithMain) \ No newline at end of file diff --git a/test/tests.cpp b/test/tests.cpp new file mode 100644 index 0000000..df871cd --- /dev/null +++ b/test/tests.cpp @@ -0,0 +1,5 @@ +#include + +TEST_CASE("validate environment") { + REQUIRE(true); +} \ No newline at end of file diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 index 0000000..38fdf82 --- /dev/null +++ b/tools/CMakeLists.txt @@ -0,0 +1,10 @@ +add_executable(edbg edbg.cpp) +target_link_libraries(edbg PRIVATE edbg::libedbg) + +include(GNUInstallDirs) +install( + TARGETS edbg + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +target_link_libraries(edbg PRIVATE edbg::libedbg PkgConfig::libedit) \ No newline at end of file diff --git a/tools/edbg.cpp b/tools/edbg.cpp new file mode 100644 index 0000000..0d7c0f4 --- /dev/null +++ b/tools/edbg.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + edbg::hello(); +} \ No newline at end of file