Init
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
build/
|
||||
result
|
||||
34
CMakeLists.txt
Normal file
34
CMakeLists.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(QT LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core Gui Qml Quick QuickControls2)
|
||||
|
||||
qt_policy(SET QTP0001 NEW)
|
||||
qt_policy(SET QTP0004 NEW)
|
||||
|
||||
qt_add_executable(qtapp src/main.cpp)
|
||||
|
||||
qt_add_qml_module(qtapp
|
||||
URI App
|
||||
VERSION 1.0
|
||||
QML_FILES
|
||||
src/Main.qml
|
||||
SOURCES
|
||||
)
|
||||
|
||||
target_include_directories(qtapp PRIVATE src)
|
||||
|
||||
target_link_libraries(qtapp PRIVATE
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::Qml
|
||||
Qt6::Quick
|
||||
Qt6::QuickControls2
|
||||
)
|
||||
|
||||
install(TARGETS qtapp DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
5
Launcher.cfg
Normal file
5
Launcher.cfg
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"Port": 4444,
|
||||
"Build": "Default",
|
||||
"CachingDirectory": "./Resources"
|
||||
}
|
||||
64
Launcher.log
Normal file
64
Launcher.log
Normal file
@@ -0,0 +1,64 @@
|
||||
[6/7/2026 21:00:33] [DEBUG] Launcher was invoked as: 'BeamMP-Launcher --no-launch'
|
||||
[6/7/2026 21:00:33] [INFO] BeamMP Launcher v2.8.0
|
||||
[6/7/2026 21:00:39] [INFO] Launcher version is up to date. Latest version: 2.8.0
|
||||
[6/7/2026 21:00:39] [INFO] IMPORTANT: You MUST keep this window open to play BeamMP!
|
||||
[6/7/2026 21:00:39] [DEBUG] HTTP Proxy listening on port 55275
|
||||
[6/7/2026 21:00:39] [INFO] Game Version : 0.38.6.0
|
||||
[6/7/2026 21:00:39] [INFO] Game user path: /home/chris/.local/share/BeamNG/BeamNG.drive/current/
|
||||
[6/7/2026 21:00:42] [DEBUG] Core Network on start! port: 4444
|
||||
[6/7/2026 21:00:44] [INFO] Game Connected!
|
||||
[6/7/2026 21:00:57] [INFO] Attempting to authenticate...
|
||||
[6/7/2026 21:00:58] [INFO] Authentication successful!
|
||||
[6/7/2026 21:00:58] [DEBUG] Authentication result: Welcome guest9658030
|
||||
[6/7/2026 21:01:15] [INFO] Connecting to server
|
||||
[6/7/2026 21:01:15] [DEBUG] MAIN LOOP OF GAME SERVER
|
||||
[6/7/2026 21:01:16] [ERROR] Client: connect failed! Error code: 111
|
||||
[6/7/2026 21:01:17] [DEBUG] Terminating TCP Socket: 24
|
||||
[6/7/2026 21:01:17] [WARN] Failed to close socket!
|
||||
[6/7/2026 21:01:17] [DEBUG] Terminating GTCP Socket: 22
|
||||
[6/7/2026 21:01:17] [DEBUG] (Proxy) accept failed with error: 22
|
||||
[6/7/2026 21:01:17] [DEBUG] Waiting for client thread
|
||||
[6/7/2026 21:01:17] [DEBUG] Client thread done
|
||||
[6/7/2026 21:01:17] [DEBUG] END OF GAME SERVER
|
||||
[6/7/2026 21:01:46] [DEBUG] MAIN LOOP OF GAME SERVER
|
||||
[6/7/2026 21:01:46] [INFO] Connecting to server
|
||||
[6/7/2026 21:01:46] [INFO] Connected!
|
||||
[6/7/2026 21:02:26] [DEBUG] (TCP) Connection closing... CheckBytes(16)
|
||||
[6/7/2026 21:02:26] [INFO] Terminated!
|
||||
[6/7/2026 21:02:26] [DEBUG] Mod info:
|
||||
[6/7/2026 21:02:26] [DEBUG] Failed to receive mod list: [json.exception.parse_error.101] parse error at line 1, column 1: attempting to parse an empty input; check that your input string or stream contains the expected JSON
|
||||
[6/7/2026 21:02:26] [DEBUG] Failed to receive new mod list format! This server may be outdated, but everything should still work as expected.
|
||||
[6/7/2026 21:02:26] [ERROR] (Game) send failed with error: 9
|
||||
[6/7/2026 21:02:29] [DEBUG] Terminating TCP Socket: 24
|
||||
[6/7/2026 21:02:29] [WARN] Failed to close socket!
|
||||
[6/7/2026 21:02:29] [DEBUG] Terminating GTCP Socket: 22
|
||||
[6/7/2026 21:02:29] [DEBUG] (Proxy) accept failed with error: 22
|
||||
[6/7/2026 21:02:29] [DEBUG] Waiting for client thread
|
||||
[6/7/2026 21:02:29] [DEBUG] Client thread done
|
||||
[6/7/2026 21:02:29] [DEBUG] END OF GAME SERVER
|
||||
[6/7/2026 21:02:33] [INFO] Connecting to server
|
||||
[6/7/2026 21:02:33] [DEBUG] MAIN LOOP OF GAME SERVER
|
||||
[6/7/2026 21:02:33] [ERROR] Client: connect failed! Error code: 111
|
||||
[6/7/2026 21:02:35] [DEBUG] Terminating TCP Socket: 24
|
||||
[6/7/2026 21:02:35] [WARN] Failed to close socket!
|
||||
[6/7/2026 21:02:35] [DEBUG] Terminating GTCP Socket: 22
|
||||
[6/7/2026 21:02:35] [DEBUG] (Proxy) accept failed with error: 22
|
||||
[6/7/2026 21:02:35] [DEBUG] Waiting for client thread
|
||||
[6/7/2026 21:02:35] [DEBUG] Client thread done
|
||||
[6/7/2026 21:02:35] [DEBUG] END OF GAME SERVER
|
||||
[6/7/2026 21:02:41] [INFO] Connecting to server
|
||||
[6/7/2026 21:02:41] [DEBUG] MAIN LOOP OF GAME SERVER
|
||||
[6/7/2026 21:02:41] [INFO] Connected!
|
||||
[6/7/2026 21:03:21] [DEBUG] (TCP) Connection closing... CheckBytes(16)
|
||||
[6/7/2026 21:03:21] [INFO] Terminated!
|
||||
[6/7/2026 21:03:21] [DEBUG] Mod info:
|
||||
[6/7/2026 21:03:21] [DEBUG] Failed to receive mod list: [json.exception.parse_error.101] parse error at line 1, column 1: attempting to parse an empty input; check that your input string or stream contains the expected JSON
|
||||
[6/7/2026 21:03:21] [DEBUG] Failed to receive new mod list format! This server may be outdated, but everything should still work as expected.
|
||||
[6/7/2026 21:03:21] [ERROR] (Game) send failed with error: 9
|
||||
[6/7/2026 21:03:25] [DEBUG] Terminating TCP Socket: 24
|
||||
[6/7/2026 21:03:25] [WARN] Failed to close socket!
|
||||
[6/7/2026 21:03:25] [DEBUG] Terminating GTCP Socket: 22
|
||||
[6/7/2026 21:03:25] [DEBUG] (Proxy) accept failed with error: 22
|
||||
[6/7/2026 21:03:25] [DEBUG] Waiting for client thread
|
||||
[6/7/2026 21:03:25] [DEBUG] Client thread done
|
||||
[6/7/2026 21:03:25] [DEBUG] END OF GAME SERVER
|
||||
11
README.md
Normal file
11
README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Simple QT/Qml + Nix dev env
|
||||
|
||||
|
||||
- Run `cmake -B build` and `cmake --build build`
|
||||
- Run `nix build -L` to build
|
||||
- Add this to helix:
|
||||
```ini
|
||||
[language-server.qmlls]
|
||||
command = "qmlls"
|
||||
args = ["-E", "-b", "build"]
|
||||
```
|
||||
1
compile_commands.json
Symbolic link
1
compile_commands.json
Symbolic link
@@ -0,0 +1 @@
|
||||
build/compile_commands.json
|
||||
27
flake.lock
generated
Normal file
27
flake.lock
generated
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1782723713,
|
||||
"narHash": "sha256-oPXCU/SSUokcGaJREHibG1CBX3+s/W7orDWQOZDsEeQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b5aa0fbd538984f6e3d201be0005b4463d8b09f8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
49
flake.nix
Normal file
49
flake.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
|
||||
{
|
||||
description = "QT Flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = {self, nixpkgs}: {
|
||||
defaultPackage.x86_64-linux = let
|
||||
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "QT";
|
||||
src = builtins.path { path = ./.; filter = path: type: baseNameOf path != "build"; };
|
||||
nativeBuildInputs = with pkgs; [
|
||||
cmake
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
buildInputs = with pkgs; [
|
||||
qt6.qtbase
|
||||
qt6.qtdeclarative
|
||||
qt6.qtwayland
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
devShell.x86_64-linux = let
|
||||
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
||||
in
|
||||
pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
cmake
|
||||
gcc
|
||||
clang-tools
|
||||
qt6.qtbase
|
||||
qt6.qtdeclarative
|
||||
qt6.qtlanguageserver
|
||||
qt6.qttools
|
||||
qt6.qtwayland
|
||||
# qtcreator
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
export QML_IMPORT_PATH="${pkgs.qt6.qtdeclarative}/lib/qml"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
16
src/Main.qml
Normal file
16
src/Main.qml
Normal file
@@ -0,0 +1,16 @@
|
||||
import App
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
ApplicationWindow {
|
||||
id: root
|
||||
width: 1000; height: 650
|
||||
visible: true
|
||||
title: "Application"
|
||||
|
||||
Label {
|
||||
text: "Application"
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
}
|
||||
20
src/main.cpp
Normal file
20
src/main.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <QGuiApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <qcoreapplication.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QGuiApplication app(argc, argv);
|
||||
QCoreApplication::setOrganizationName("hexstudios");
|
||||
QCoreApplication::setApplicationName("dndtool");
|
||||
|
||||
QQmlApplicationEngine engine;
|
||||
QObject::connect(
|
||||
&engine, &QQmlApplicationEngine::objectCreationFailed,
|
||||
&app, []() { QCoreApplication::exit(-1); },
|
||||
Qt::QueuedConnection);
|
||||
|
||||
engine.loadFromModule("App", "Main");
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
Reference in New Issue
Block a user