aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt60
-rw-r--r--CMakePresets.json78
-rw-r--r--Makefile83
-rw-r--r--launch.vs.json12
-rw-r--r--src/RelationalNT.cpp (renamed from src/NT.cpp)0
5 files changed, 66 insertions, 167 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 77d2321..ceac7a0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,38 +1,34 @@
-cmake_minimum_required(VERSION 3.20)
-project(RelationalNT LANGUAGES CXX)
-
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-set(CMAKE_CXX_EXTENSIONS OFF)
-
-# Toggle the "Press Enter to exit" prompt. ON by default for interactive runs;
-# set -DNT_WAIT_ON_EXIT=OFF on the cmake command line to disable (e.g. in CI).
-option(NT_WAIT_ON_EXIT "Wait for Enter key before exiting the console app" ON)
+# CMakeList.txt : CMake project for RelationalNT, include source and define
+# project specific logic here.
+#
+cmake_minimum_required (VERSION 3.10)
+
+# Enable Hot Reload for MSVC compilers if supported.
+if (POLICY CMP0141)
+ cmake_policy(SET CMP0141 NEW)
+ set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
+endif()
-set(SOURCES
- src/CursorManager.cpp
- src/HandlerManager.cpp
- src/IdentityManager.cpp
- src/LifecycleManager.cpp
- src/NamespaceReferenceManager.cpp
- src/NT.cpp
- src/ObjectManager.cpp
- src/PermissionsManager.cpp
- src/VM.cpp
+project ("RelationalNT")
+
+# Add source to this project's executable.
+add_executable (RelationalNT
+ "src/RelationalNT.cpp"
+ "src/ObjectManager.cpp"
+ "src/PermissionsManager.cpp"
+ "src/IdentityManager.cpp"
+ "src/LifecycleManager.cpp"
+ "src/HandlerManager.cpp"
+ "src/CursorManager.cpp"
+ "src/NamespaceReferenceManager.cpp"
+ "src/VM.cpp"
)
-add_executable(RNT ${SOURCES})
+target_include_directories(RelationalNT PRIVATE "include")
+target_compile_definitions(RelationalNT PRIVATE NT_CONSOLE_APP)
-target_include_directories(RNT PRIVATE include)
-
-target_compile_definitions(RNT PRIVATE NT_CONSOLE_APP)
-
-if(NT_WAIT_ON_EXIT)
- target_compile_definitions(RNT PRIVATE NT_WAIT_ON_EXIT)
+if (CMAKE_VERSION VERSION_GREATER 3.12)
+ set_property(TARGET RelationalNT PROPERTY CXX_STANDARD 20)
endif()
-if(MSVC)
- target_compile_options(RNT PRIVATE /W4)
-else()
- target_compile_options(RNT PRIVATE -Wall -Wextra)
-endif()
+# TODO: Add tests and install targets if needed.
diff --git a/CMakePresets.json b/CMakePresets.json
index 7b03857..abf4065 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -1,63 +1,61 @@
-{
+{
"version": 3,
"configurePresets": [
{
- "name": "windows-debug",
- "displayName": "Windows Debug",
+ "name": "windows-base",
+ "hidden": true,
"generator": "Ninja",
- "binaryDir": "${sourceDir}/out/debug",
+ "binaryDir": "${sourceDir}/out/build/${presetName}",
+ "installDir": "${sourceDir}/out/install/${presetName}",
"cacheVariables": {
- "CMAKE_BUILD_TYPE": "Debug",
- "NT_WAIT_ON_EXIT": "ON"
+ "CMAKE_C_COMPILER": "cl.exe",
+ "CMAKE_CXX_COMPILER": "cl.exe"
+ },
+ "condition": {
+ "type": "equals",
+ "lhs": "${hostSystemName}",
+ "rhs": "Windows"
}
},
{
- "name": "windows-release",
- "displayName": "Windows Release",
- "generator": "Ninja",
- "binaryDir": "${sourceDir}/out/release",
+ "name": "x64-debug",
+ "displayName": "x64 Debug",
+ "inherits": "windows-base",
+ "architecture": {
+ "value": "x64",
+ "strategy": "external"
+ },
"cacheVariables": {
- "CMAKE_BUILD_TYPE": "Release",
- "NT_WAIT_ON_EXIT": "OFF"
+ "CMAKE_BUILD_TYPE": "Debug"
}
},
{
- "name": "unix-debug",
- "displayName": "Unix Debug",
- "generator": "Ninja",
- "binaryDir": "${sourceDir}/out/debug",
+ "name": "x64-release",
+ "displayName": "x64 Release",
+ "inherits": "x64-debug",
"cacheVariables": {
- "CMAKE_BUILD_TYPE": "Debug",
- "NT_WAIT_ON_EXIT": "ON"
+ "CMAKE_BUILD_TYPE": "Release"
}
},
{
- "name": "unix-release",
- "displayName": "Unix Release",
- "generator": "Ninja",
- "binaryDir": "${sourceDir}/out/release",
+ "name": "x86-debug",
+ "displayName": "x86 Debug",
+ "inherits": "windows-base",
+ "architecture": {
+ "value": "x86",
+ "strategy": "external"
+ },
"cacheVariables": {
- "CMAKE_BUILD_TYPE": "Release",
- "NT_WAIT_ON_EXIT": "OFF"
+ "CMAKE_BUILD_TYPE": "Debug"
}
- }
- ],
- "buildPresets": [
- {
- "name": "windows-debug",
- "configurePreset": "windows-debug"
},
{
- "name": "windows-release",
- "configurePreset": "windows-release"
- },
- {
- "name": "unix-debug",
- "configurePreset": "unix-debug"
- },
- {
- "name": "unix-release",
- "configurePreset": "unix-release"
+ "name": "x86-release",
+ "displayName": "x86 Release",
+ "inherits": "x86-debug",
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "Release"
+ }
}
]
}
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 4b444d9..0000000
--- a/Makefile
+++ /dev/null
@@ -1,83 +0,0 @@
-CXX = cl
-TARGET = RNT.exe
-OBJECTS = NT.obj ObjectManager.obj PermissionsManager.obj NamespaceReferenceManager.obj CursorManager.obj IdentityManager.obj LifecycleManager.obj HandlerManager.obj VM.obj
-INCDIR = include
-DEFINES = /DNT_CONSOLE_APP /DNT_WAIT_ON_EXIT
-INCLUDE_FLAG = /I$(INCDIR)
-COMPILE_FLAGS = /std:c++17 /W4 /EHsc
-COMPILE_ONLY = /c
-LINK_FLAGS =
-TARGET_OUT = /Fe:$(TARGET)
-REMOVE = del /Q
-
-all: $(TARGET)
-
-windows: all
-
-unix:
- $(MAKE) CXX=c++ TARGET=RNT OBJECTS="NT.o ObjectManager.o PermissionsManager.o NamespaceReferenceManager.o CursorManager.o IdentityManager.o LifecycleManager.o HandlerManager.o VM.o" DEFINES=-DNT_CONSOLE_APP INCLUDE_FLAG=-Iinclude COMPILE_FLAGS="-std=c++17 -Wall -Wextra" COMPILE_ONLY=-c LINK_FLAGS= TARGET_OUT="-o RNT" REMOVE="rm -f" all
-
-linux: unix
-
-macos:
- $(MAKE) CXX=c++ TARGET=RNT OBJECTS="NT.o ObjectManager.o PermissionsManager.o NamespaceReferenceManager.o CursorManager.o IdentityManager.o LifecycleManager.o HandlerManager.o VM.o" DEFINES=-DNT_CONSOLE_APP INCLUDE_FLAG=-Iinclude COMPILE_FLAGS="-std=c++17 -Wall -Wextra" COMPILE_ONLY=-c LINK_FLAGS= TARGET_OUT="-o RNT" REMOVE="rm -f" all
-
-$(TARGET): $(OBJECTS)
- $(CXX) $(LINK_FLAGS) $(OBJECTS) $(TARGET_OUT)
-
-NT.obj: src\NT.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\NT.cpp /Fo:NT.obj
-
-ObjectManager.obj: src\ObjectManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\ObjectManager.cpp /Fo:ObjectManager.obj
-
-PermissionsManager.obj: src\PermissionsManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\PermissionsManager.cpp /Fo:PermissionsManager.obj
-
-NamespaceReferenceManager.obj: src\NamespaceReferenceManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\NamespaceReferenceManager.cpp /Fo:NamespaceReferenceManager.obj
-
-CursorManager.obj: src\CursorManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\CursorManager.cpp /Fo:CursorManager.obj
-
-IdentityManager.obj: src\IdentityManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\IdentityManager.cpp /Fo:IdentityManager.obj
-
-LifecycleManager.obj: src\LifecycleManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\LifecycleManager.cpp /Fo:LifecycleManager.obj
-
-HandlerManager.obj: src\HandlerManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\HandlerManager.cpp /Fo:HandlerManager.obj
-
-VM.obj: src\VM.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src\VM.cpp /Fo:VM.obj
-
-NT.o: src/NT.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/NT.cpp -o NT.o
-
-ObjectManager.o: src/ObjectManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/ObjectManager.cpp -o ObjectManager.o
-
-PermissionsManager.o: src/PermissionsManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/PermissionsManager.cpp -o PermissionsManager.o
-
-NamespaceReferenceManager.o: src/NamespaceReferenceManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/NamespaceReferenceManager.cpp -o NamespaceReferenceManager.o
-
-CursorManager.o: src/CursorManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/CursorManager.cpp -o CursorManager.o
-
-IdentityManager.o: src/IdentityManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/IdentityManager.cpp -o IdentityManager.o
-
-LifecycleManager.o: src/LifecycleManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/LifecycleManager.cpp -o LifecycleManager.o
-
-HandlerManager.o: src/HandlerManager.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/HandlerManager.cpp -o HandlerManager.o
-
-VM.o: src/VM.cpp
- $(CXX) $(DEFINES) $(INCLUDE_FLAG) $(COMPILE_FLAGS) $(COMPILE_ONLY) src/VM.cpp -o VM.o
-
-clean:
- -$(REMOVE) RNT.exe RNT $(OBJECTS) NT.obj ObjectManager.obj PermissionsManager.obj NamespaceReferenceManager.obj CursorManager.obj IdentityManager.obj LifecycleManager.obj HandlerManager.obj VM.obj NT.o ObjectManager.o PermissionsManager.o NamespaceReferenceManager.o CursorManager.o IdentityManager.o LifecycleManager.o HandlerManager.o VM.o RNT.exp RNT.lib
diff --git a/launch.vs.json b/launch.vs.json
deleted file mode 100644
index 4533583..0000000
--- a/launch.vs.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "version": "0.2.1",
- "configurations": [
- {
- "type": "default",
- "project": "CMakeLists.txt",
- "projectTarget": "RNT.exe",
- "name": "RNT.exe (Debug)",
- "currentDir": "${workspaceRoot}"
- }
- ]
-}
diff --git a/src/NT.cpp b/src/RelationalNT.cpp
index 66752ef..66752ef 100644
--- a/src/NT.cpp
+++ b/src/RelationalNT.cpp