chore: flat out the file structure
This commit is contained in:
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
[submodule "furdb/deps/isocline"]
|
[submodule "deps/isocline"]
|
||||||
path = furdb/deps/isocline
|
path = deps/isocline
|
||||||
url = https://github.com/daanx/isocline
|
url = https://github.com/daanx/isocline
|
||||||
|
|||||||
+10
-6
@@ -11,12 +11,16 @@ find_package(Doxygen)
|
|||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
add_subdirectory(furlang)
|
add_subdirectory(src/furlang)
|
||||||
add_subdirectory(furvm)
|
add_subdirectory(src/furvm)
|
||||||
add_subdirectory(furc)
|
add_subdirectory(src/furc)
|
||||||
add_subdirectory(furas)
|
add_subdirectory(src/furas)
|
||||||
add_subdirectory(disfuras)
|
add_subdirectory(src/disfuras)
|
||||||
add_subdirectory(furdb)
|
add_subdirectory(src/furdb)
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
set(IC_USE_CXX ON)
|
||||||
|
add_subdirectory(${CMAKE_SOURCE_DIR}/deps/isocline)
|
||||||
|
|
||||||
if(DOXYGEN_FOUND)
|
if(DOXYGEN_FOUND)
|
||||||
set(DOXYGEN_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/docs)
|
set(DOXYGEN_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/docs)
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
file(GLOB_RECURSE DISFURAS_SRCS "src/**.cpp")
|
|
||||||
file(GLOB_RECURSE DISFURAS_HDRS "include/**.hpp")
|
|
||||||
add_executable(disfuras ${DISFURAS_SRCS} ${DISFURAS_HDRS})
|
|
||||||
target_include_directories(disfuras PRIVATE include/)
|
|
||||||
target_link_libraries(disfuras PUBLIC furlang libfurc libfurvm)
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
file(GLOB_RECURSE FURAS_SRCS "src/**.cpp")
|
|
||||||
file(GLOB_RECURSE FURAS_HDRS "include/**.hpp")
|
|
||||||
add_executable(furas ${FURAS_SRCS} ${FURAS_HDRS})
|
|
||||||
target_include_directories(furas PUBLIC include/)
|
|
||||||
target_link_libraries(furas PRIVATE furlang libfurvm)
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
set(IC_USE_CXX ON)
|
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/deps/isocline)
|
|
||||||
|
|
||||||
file(GLOB_RECURSE FURDB_SRCS "src/**.cpp")
|
|
||||||
file(GLOB_RECURSE FURDB_HDRS "include/**.hpp")
|
|
||||||
add_executable(furdb ${FURDB_SRCS} ${FURDB_HDRS})
|
|
||||||
target_include_directories(furdb PRIVATE include/)
|
|
||||||
target_link_libraries(furdb PUBLIC furlang libfurc libfurvm isocline)
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
file(GLOB_RECURSE FURLANG_SRCS "src/**.cpp")
|
|
||||||
file(GLOB_RECURSE FURLANG_HDRS "include/**.hpp")
|
|
||||||
add_library(furlang STATIC ${FURLANG_SRCS} ${FURLANG_HDRS})
|
|
||||||
target_include_directories(furlang PUBLIC include/)
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#ifndef FURC_BACK_FURVM_HPP
|
||||||
|
#define FURC_BACK_FURVM_HPP
|
||||||
|
|
||||||
|
#include "furc/middle/ir.hpp"
|
||||||
|
#include "furvm/module.hpp"
|
||||||
|
|
||||||
|
namespace furc {
|
||||||
|
|
||||||
|
class furvm_generator final {
|
||||||
|
public:
|
||||||
|
static furvm::mod generate(const ir_module& mod);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace furc
|
||||||
|
|
||||||
|
#endif // FURC_BACK_FURVM_HPP
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
file(GLOB_RECURSE DISFURAS_SRCS "${CMAKE_SOURCE_DIR}/src/disfuras/**.cpp")
|
||||||
|
add_executable(disfuras ${DISFURAS_SRCS})
|
||||||
|
target_include_directories(disfuras PRIVATE ${CMAKE_SOURCE_DIR}/include/)
|
||||||
|
target_link_libraries(disfuras PUBLIC furlang libfurc libfurvm)
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
file(GLOB_RECURSE FURAS_SRCS "${CMAKE_SOURCE_DIR}/src/furas/**.cpp")
|
||||||
|
file(GLOB_RECURSE FURAS_HDRS "${CMAKE_SOURCE_DIR}/include/furas/**.hpp")
|
||||||
|
add_executable(furas ${FURAS_SRCS} ${FURAS_HDRS})
|
||||||
|
target_include_directories(furas PUBLIC ${CMAKE_SOURCE_DIR}/include/)
|
||||||
|
target_link_libraries(furas PRIVATE furlang libfurvm)
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
file(GLOB_RECURSE FURC_SRCS "src/**.cpp")
|
file(GLOB_RECURSE FURC_SRCS "${CMAKE_SOURCE_DIR}/src/furc/**.cpp")
|
||||||
file(GLOB_RECURSE FURC_HDRS "include/**.hpp")
|
file(GLOB_RECURSE FURC_HDRS "${CMAKE_SOURCE_DIR}/include/furc/**.hpp")
|
||||||
add_library(libfurc ${FURC_SRCS} ${FURC_HDRS})
|
add_library(libfurc ${FURC_SRCS} ${FURC_HDRS})
|
||||||
target_include_directories(libfurc PUBLIC include/)
|
target_include_directories(libfurc PUBLIC ${CMAKE_SOURCE_DIR}/include/)
|
||||||
target_compile_definitions(libfurc PRIVATE LIBFURC)
|
target_compile_definitions(libfurc PRIVATE LIBFURC)
|
||||||
set_target_properties(libfurc PROPERTIES PREFIX "")
|
set_target_properties(libfurc PROPERTIES PREFIX "")
|
||||||
target_link_libraries(libfurc PUBLIC furlang libfurvm)
|
target_link_libraries(libfurc PUBLIC furlang libfurvm)
|
||||||
add_executable(furc src/main.cpp)
|
add_executable(furc "${CMAKE_SOURCE_DIR}/src/furc/main.cpp")
|
||||||
target_link_libraries(furc PRIVATE libfurc)
|
target_link_libraries(furc PRIVATE libfurc)
|
||||||
|
|
||||||
include(GoogleTest)
|
include(GoogleTest)
|
||||||
|
|
||||||
add_executable(furc_tests "test/ssa.cpp")
|
add_executable(furc_tests "${CMAKE_SOURCE_DIR}/test/furc/ssa.cpp")
|
||||||
target_link_libraries(furc_tests PRIVATE libfurc GTest::gtest_main)
|
target_link_libraries(furc_tests PRIVATE libfurc GTest::gtest_main)
|
||||||
gtest_discover_tests(furc_tests)
|
gtest_discover_tests(furc_tests)
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#include "furc/back/furvm/target.hpp"
|
||||||
|
|
||||||
|
#include "furvm/function.hpp"
|
||||||
|
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
|
namespace furc {
|
||||||
|
|
||||||
|
furvm::mod furvm_generator::generate(const ir_module& mod) {
|
||||||
|
if (!mod.variables.empty()) throw std::runtime_error("global variables are not supported for furvm yet");
|
||||||
|
|
||||||
|
furvm::mod furvmMod;
|
||||||
|
for (const auto& func : mod.functions) {
|
||||||
|
furvmMod.emplace_function(furvm::function_sig{ {}, {} }, furvmMod.bytecode().size());
|
||||||
|
}
|
||||||
|
|
||||||
|
return furvmMod;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace furc
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
file(GLOB_RECURSE FURDB_SRCS "${CMAKE_SOURCE_DIR}/src/furdb/**.cpp")
|
||||||
|
file(GLOB_RECURSE FURDB_HDRS "${CMAKE_SOURCE_DIR}/include/furdb/**.hpp")
|
||||||
|
add_executable(furdb ${FURDB_SRCS} ${FURDB_HDRS})
|
||||||
|
target_include_directories(furdb PRIVATE ${CMAKE_SOURCE_DIR}/include/)
|
||||||
|
target_link_libraries(furdb PUBLIC furlang libfurc libfurvm isocline)
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
file(GLOB_RECURSE FURLANG_SRCS "${CMAKE_SOURCE_DIR}/src/furlang/**.cpp")
|
||||||
|
file(GLOB_RECURSE FURLANG_HDRS "${CMAKE_SOURCE_DIR}/include/furlang/**.hpp")
|
||||||
|
add_library(furlang STATIC ${FURLANG_SRCS} ${FURLANG_HDRS})
|
||||||
|
target_include_directories(furlang PUBLIC ${CMAKE_SOURCE_DIR}/include/)
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
file(GLOB_RECURSE FURVM_SRCS "src/**.cpp")
|
file(GLOB_RECURSE FURVM_SRCS "${CMAKE_SOURCE_DIR}/src/furvm/**.cpp")
|
||||||
file(GLOB_RECURSE FURVM_HDRS "include/**.hpp")
|
file(GLOB_RECURSE FURVM_HDRS "${CMAKE_SOURCE_DIR}/include/furvm/**.hpp")
|
||||||
add_library(libfurvm ${FURVM_SRCS} ${FURVM_HDRS})
|
add_library(libfurvm ${FURVM_SRCS} ${FURVM_HDRS})
|
||||||
target_include_directories(libfurvm PUBLIC include/)
|
target_include_directories(libfurvm PUBLIC ${CMAKE_SOURCE_DIR}/include/)
|
||||||
target_compile_definitions(libfurvm PRIVATE LIBFURVM)
|
target_compile_definitions(libfurvm PRIVATE LIBFURVM)
|
||||||
set_target_properties(libfurvm PROPERTIES PREFIX "")
|
set_target_properties(libfurvm PROPERTIES PREFIX "")
|
||||||
target_link_libraries(libfurvm PUBLIC furlang)
|
target_link_libraries(libfurvm PUBLIC furlang)
|
||||||
add_executable(furvm src/main.cpp)
|
add_executable(furvm "${CMAKE_SOURCE_DIR}/src/furvm/main.cpp")
|
||||||
target_link_libraries(furvm PRIVATE libfurvm)
|
target_link_libraries(furvm PRIVATE libfurvm)
|
||||||
|
|
||||||
include(GoogleTest)
|
include(GoogleTest)
|
||||||
|
|
||||||
file(GLOB_RECURSE FURVM_TESTS "test/**.cpp")
|
file(GLOB_RECURSE FURVM_TESTS "${CMAKE_SOURCE_DIR}/test/furvm/**.cpp")
|
||||||
add_executable(furvm_tests ${FURVM_TESTS})
|
add_executable(furvm_tests ${FURVM_TESTS})
|
||||||
target_link_libraries(furvm_tests PRIVATE libfurvm GTest::gtest_main)
|
target_link_libraries(furvm_tests PRIVATE libfurvm GTest::gtest_main)
|
||||||
gtest_discover_tests(furvm_tests)
|
gtest_discover_tests(furvm_tests)
|
||||||
Reference in New Issue
Block a user