diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-05-09 23:27:36 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-05-09 23:27:36 -0300 |
| commit | ce0566f9b6f8332d4ea85746f449c623097e330f (patch) | |
| tree | 4827f65b13786e3f1947a5314f02d1ccc3bd5f8c | |
| parent | c375b1c69665ae7c16ffa3f17264386dfc257d8e (diff) | |
| download | RNT-ce0566f9b6f8332d4ea85746f449c623097e330f.tar.gz RNT-ce0566f9b6f8332d4ea85746f449c623097e330f.zip | |
Port project to cmake
| -rw-r--r-- | CMakeLists.txt | 60 | ||||
| -rw-r--r-- | CMakePresets.json | 78 | ||||
| -rw-r--r-- | Makefile | 83 | ||||
| -rw-r--r-- | launch.vs.json | 12 | ||||
| -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 |
