diff --git a/CMakeLists.txt b/CMakeLists.txt index 0902bfe..b1130f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ find_package(GTest REQUIRED) find_package(Doxygen) add_subdirectory(furlang) +add_subdirectory(furvm) add_subdirectory(furc) if(DOXYGEN_FOUND) @@ -17,7 +18,7 @@ if(DOXYGEN_FOUND) set(DOXYGEN_HIDE_UNDOC_NAMESPACES NO) set(DOXYGEN_HIDE_UNDOC_RELATIONS NO) set(DOXYGEN_FILE_PATTERNS "*.hpp") - doxygen_add_docs(doxygen_doc ${CMAKE_SOURCE_DIR}/furc/ ${CMAKE_SOURCE_DIR}/furlang/ + doxygen_add_docs(doxygen_doc ${CMAKE_SOURCE_DIR}/furlang/ ${CMAKE_SOURCE_DIR}/furvm/ ${CMAKE_SOURCE_DIR}/furc/ ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating API documentation with Doxygen") endif() \ No newline at end of file diff --git a/furvm/CMakeLists.txt b/furvm/CMakeLists.txt new file mode 100644 index 0000000..c96afda --- /dev/null +++ b/furvm/CMakeLists.txt @@ -0,0 +1,16 @@ +file(GLOB_RECURSE FURVM_SRCS "src/**.cpp") +file(GLOB_RECURSE FURVM_HDRS "include/**.hpp") +add_library(libfurvm ${FURVM_SRCS} ${FURVM_HDRS}) +target_include_directories(libfurvm PUBLIC include/) +target_compile_definitions(libfurvm PRIVATE LIBFURVM) +set_target_properties(libfurvm PROPERTIES PREFIX "") +target_link_libraries(libfurvm PUBLIC furlang) +add_executable(furvm src/main.cpp) +target_link_libraries(furvm PRIVATE libfurvm) + +include(GoogleTest) + +file(GLOB_RECURSE FURVM_TESTS "test/**.cpp") +add_executable(furvm_tests ${FURVM_TESTS}) +target_link_libraries(furvm_tests PRIVATE libfurvm GTest::gtest_main) +gtest_discover_tests(furvm_tests) \ No newline at end of file diff --git a/furvm/src/main.cpp b/furvm/src/main.cpp new file mode 100644 index 0000000..54b561f --- /dev/null +++ b/furvm/src/main.cpp @@ -0,0 +1,11 @@ +#ifndef LIBFURVM + +#include + +int main(void) { + std::cout << "Hello, furlang!\n"; + + return 0; +} + +#endif // LUBFURVM \ No newline at end of file diff --git a/furvm/test/test.cpp b/furvm/test/test.cpp new file mode 100644 index 0000000..37afc66 --- /dev/null +++ b/furvm/test/test.cpp @@ -0,0 +1,3 @@ +#include "gtest/gtest.h" // IWYU pragma: keep + +namespace {} \ No newline at end of file