Skip to content

Commit 8451434

Browse files
authored
Merge pull request #93 from PipeRift/feature/custom-main-functions
Added main functions, runtime libraries & pipe update
2 parents 4cda575 + 0ed2e91 commit 8451434

114 files changed

Lines changed: 1297 additions & 992 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ jobs:
7676
uses: actions/cache@v2
7777
with:
7878
path: ${{ runner.temp }}/llvm
79-
key: llvm-14.0-${{ matrix.os-name }}
79+
key: llvm-15.0-${{ matrix.os-name }}
8080
- name: Install LLVM
8181
if: ${{ matrix.compiler == 'clang' }}
8282
uses: KyleMayes/install-llvm-action@v1
8383
with:
84-
version: "14.0"
84+
version: "15.0"
8585
directory: ${{ runner.temp }}/llvm
8686
cached: ${{ steps.cache-llvm.outputs.cache-hit }}
8787

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@
1616
[submodule "Extern/taskflow"]
1717
path = Extern/taskflow
1818
url = https://github.com/taskflow/taskflow.git
19+
[submodule "Extern/mir"]
20+
path = Extern/mir
21+
url = https://github.com/vnmakarov/mir.git

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,5 +231,6 @@
231231
"--backend",
232232
"LLVM"
233233
]
234-
}
234+
},
235+
"dotnet.defaultSolution": "disable"
235236
}

Apps/CLI/Src/CLIModule.cpp

Lines changed: 0 additions & 4 deletions
This file was deleted.

Apps/CLI/Src/main.cpp

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
// Copyright 2015-2023 Piperift - All rights reserved
22

3+
#include <Pipe/Memory/NewDelete.h>
4+
// Override as first include
5+
36
#include <AST/Utils/ModuleUtils.h>
47
#include <Compiler/Compiler.h>
58
#include <Compiler/Utils/BackendUtils.h>
69
#include <FrameworkModule.h>
710
#include <GraphViewModule.h>
811
#include <LLVMBackendModule.h>
12+
#include <MIRBackendModule.h>
913
#include <Pipe/Core/Profiler.h>
1014
#include <Pipe/Files/Paths.h>
1115
#include <Pipe/Pipe.h>
@@ -20,8 +24,7 @@ using namespace rift;
2024

2125
namespace rift
2226
{
23-
void AddBackendOption(
24-
CLI::App& app, const TArray<TOwnPtr<compiler::Backend>>& backends, String& selected)
27+
void AddBackendOption(CLI::App& app, const TArray<TOwnPtr<Backend>>& backends, String& selected)
2528
{
2629
String desc = "Backend to build with. Available: ";
2730
if (!backends.IsEmpty())
@@ -45,10 +48,9 @@ namespace rift
4548
app.add_option("-b,--backend", selected, stdDesc, true);
4649
}
4750

48-
TPtr<compiler::Backend> FindBackendByName(
49-
const TArray<TOwnPtr<compiler::Backend>>& backends, Tag name)
51+
TPtr<Backend> FindBackendByName(const TArray<TOwnPtr<Backend>>& backends, Tag name)
5052
{
51-
TOwnPtr<compiler::Backend>* backend = backends.Find([name](const auto& backend) {
53+
TOwnPtr<Backend>* backend = backends.Find([name](const auto& backend) {
5254
return backend->GetName() == name;
5355
});
5456
if (backend)
@@ -65,6 +67,7 @@ int main(int argc, char** argv)
6567
p::Initialize("Saved/Logs");
6668
EnableModule<FrameworkModule>();
6769
EnableModule<LLVMBackendModule>();
70+
EnableModule<MIRBackendModule>();
6871
EnableModule<GraphViewModule>();
6972

7073
CLI::App app{"Rift compiler"};
@@ -73,12 +76,12 @@ int main(int argc, char** argv)
7376

7477

7578
String selectedBackendStr;
76-
auto availableBackends = compiler::CreateBackends();
79+
auto availableBackends = CreateBackends();
7780
AddBackendOption(app, availableBackends, selectedBackendStr);
7881

7982
CLI11_PARSE(app, argc, argv);
8083

81-
TPtr<compiler::Backend> backend = FindBackendByName(availableBackends, Tag(selectedBackendStr));
84+
TPtr<Backend> backend = FindBackendByName(availableBackends, Tag(selectedBackendStr));
8285

8386
ZoneScopedNC("CLI Execution", 0x459bd1);
8487

@@ -87,12 +90,12 @@ int main(int argc, char** argv)
8790

8891
if (!AST::HasProject(ast))
8992
{
90-
Log::Error("Couldn't open project '{}'", p::ToString(path));
93+
p::Error("Couldn't open project '{}'", p::ToString(path));
9194
return 1;
9295
}
9396

94-
compiler::Config config;
95-
compiler::Build(ast, config, backend);
97+
CompilerConfig config;
98+
Build(ast, config, backend);
9699

97100
while (true)
98101
{

Apps/Editor/Src/EditorExeModule.cpp

Lines changed: 0 additions & 4 deletions
This file was deleted.

Apps/Editor/Src/main.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
// Copyright 2015-2023 Piperift - All rights reserved
22

3+
#include <Pipe/Memory/NewDelete.h>
4+
// Override as first include
5+
36
#include <Editor.h>
47
#include <FrameworkModule.h>
58
#include <GraphViewModule.h>
69
#include <LLVMBackendModule.h>
10+
#include <MIRBackendModule.h>
711
#include <Pipe/Pipe.h>
812

913
#include <iostream>
@@ -21,6 +25,7 @@ int RunEditor(StringView projectPath)
2125
p::Initialize("Saved/Logs");
2226
EnableModule<FrameworkModule>();
2327
EnableModule<LLVMBackendModule>();
28+
EnableModule<MIRBackendModule>();
2429
EnableModule<GraphViewModule>();
2530

2631
const int result = Editor::Editor::Get().Run(projectPath);

CMake/Util.cmake

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ function(rift_compiler_module target)
1111
rift_module(${target})
1212

1313
target_include_directories(${target} PUBLIC Compiler/Include)
14+
target_include_directories(${target} PRIVATE Compiler/Src)
1415
file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS Compiler/Src/*.cpp Compiler/Src/*.h)
1516
target_sources(${target} PRIVATE ${SOURCE_FILES})
1617
set(RIFT_COMPILER_MODULES ${RIFT_COMPILER_MODULES} ${target} PARENT_SCOPE)
@@ -21,17 +22,21 @@ function(rift_editor_module target)
2122
rift_module(${target})
2223

2324
target_include_directories(${target} PUBLIC Editor/Include)
25+
target_include_directories(${target} PRIVATE Editor/Src)
2426
file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS Editor/Src/*.cpp Editor/Src/*.h)
2527
target_sources(${target} PRIVATE ${SOURCE_FILES})
2628
target_link_libraries(RiftEditorModules INTERFACE ${target})
2729
endfunction(rift_editor_module)
2830

2931
function(rift_runtime_module module)
32+
set(RIFT_BINARY_DIR ${CMAKE_BINARY_DIR}/Bin/${CMAKE_CFG_INTDIR})
33+
3034
set(target RiftRuntime${module})
3135
add_library(${target} STATIC)
3236
rift_module(${target})
3337

3438
target_include_directories(${target} PUBLIC ${module}/Include)
39+
target_include_directories(${target} PRIVATE ${module}/Src)
3540
file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS ${module}/Src/*.cpp ${module}/Src/*.h)
3641
target_sources(${target} PRIVATE ${SOURCE_FILES})
3742
target_link_libraries(RiftRuntimeModules INTERFACE ${target})
@@ -48,18 +53,19 @@ function(rift_runtime_module module)
4853

4954

5055
add_custom_command(TARGET ${target} POST_BUILD COMMAND
51-
${CMAKE_COMMAND} -E remove_directory "${CMAKE_BINARY_DIR}/Bin/Runtimes/${module}"
56+
${CMAKE_COMMAND} -E remove_directory "${RIFT_BINARY_DIR}/Runtimes/${module}"
5257
)
5358
add_custom_command(TARGET ${target} POST_BUILD COMMAND
54-
${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/${module}" "${CMAKE_BINARY_DIR}/Bin/Runtimes/${module}"
59+
${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/${module}" "${RIFT_BINARY_DIR}/Runtimes/${module}"
5560
)
5661
add_custom_command(TARGET ${target} POST_BUILD COMMAND
57-
${CMAKE_COMMAND} -E remove_directory "${CMAKE_BINARY_DIR}/Bin/Runtimes/${module}/Src"
62+
${CMAKE_COMMAND} -E remove_directory "${RIFT_BINARY_DIR}/Runtimes/${module}/Src"
5863
)
5964
endfunction(rift_runtime_module)
6065

6166
function(rift_enable_module_resources target)
67+
set(RIFT_BINARY_DIR ${CMAKE_BINARY_DIR}/Bin/${CMAKE_CFG_INTDIR})
6268
add_custom_command(TARGET ${target} POST_BUILD COMMAND
63-
${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/Resources" "${CMAKE_BINARY_DIR}/Bin/Resources"
69+
${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/Resources" "${RIFT_BINARY_DIR}/Resources"
6470
)
6571
endfunction(rift_enable_module_resources)

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Copyright 2015-2023 Piperift - All rights reserved
22

33
# CMake version
4-
cmake_minimum_required (VERSION 3.21)
4+
cmake_minimum_required (VERSION 3.26)
55
MESSAGE(STATUS "CMAKE_ROOT: " ${CMAKE_ROOT})
66

77
set(CMAKE_VERBOSE_MAKEFILE OFF)
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
2-
"name": "none",
3-
"target": "Static",
4-
"type": "CBinding",
5-
"dependencies": [],
6-
"libraryFiles": []
2+
"CModule": {
3+
"target": "Static",
4+
"dependencies": []
5+
}
76
}

0 commit comments

Comments
 (0)