Compare commits
No commits in common. "243af95a3b7b7391998171ead32415dcaaa29b8f" and "be324e0aa83e87df8fe6926ad65bfb820f1a3b11" have entirely different histories.
243af95a3b
...
be324e0aa8
3 changed files with 13 additions and 32 deletions
32
BUILD.md
32
BUILD.md
|
@ -1,27 +1,20 @@
|
||||||
# Building on Linux
|
# Building on Linux
|
||||||
|
|
||||||
You will need to install Qt and LLVM/libclang beforehand. All other packages will automatically be obtained through CPM.
|
For pre-requisite packages, check [deps.txt](./deps.txt)
|
||||||
|
|
||||||
ccache is highly recommended.
|
If your distribution does not provide ReactPhysics3D, you will have to build (and install) it yourself prior to this step
|
||||||
|
|
||||||
Use the following to generate the build files:
|
Use the following to generate the build files:
|
||||||
|
|
||||||
cmake -Bbuild .
|
cmake -Bbuild .
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> Add -DCMAKE_BUILD_TYPE=Release to produce a release build
|
|
||||||
|
|
||||||
Then build the project using:
|
Then build the project using:
|
||||||
|
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
|
||||||
The compiled binaries should then be located in `./build/bin/` and should be ready for redistribution without any further work.
|
|
||||||
|
|
||||||
If any of the compilation steps fail, or the binaries fail to execute, please create an issue so that this can be corrected.
|
|
||||||
|
|
||||||
# Building on Windows
|
# Building on Windows
|
||||||
|
|
||||||
The process is very similar on Windows
|
The project will be built using VCPKG and MSVC
|
||||||
|
|
||||||
## Pre-requisites
|
## Pre-requisites
|
||||||
|
|
||||||
|
@ -29,7 +22,6 @@ The process is very similar on Windows
|
||||||
* Qt 6.8.3 or higher, with MSVC toolchain
|
* Qt 6.8.3 or higher, with MSVC toolchain
|
||||||
* CMake
|
* CMake
|
||||||
* Git (for cloning the repo, optional)
|
* Git (for cloning the repo, optional)
|
||||||
* LLVM/libclang 18.1.8+ (from https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.8/LLVM-18.1.8-win64.exe)
|
|
||||||
* QScintilla already built (see [docs/qscintilla.md](./docs/qscintilla.md)) *\*likely temporary\**
|
* QScintilla already built (see [docs/qscintilla.md](./docs/qscintilla.md)) *\*likely temporary\**
|
||||||
|
|
||||||
To start, clone the repository:
|
To start, clone the repository:
|
||||||
|
@ -42,18 +34,18 @@ Once in the directory, add Qt to the `CMAKE_PREFIX_PATH` variable (for instance,
|
||||||
|
|
||||||
set CMAKE_PREFIX_PATH=C:\Qt\6.8.3\msvc2022_64
|
set CMAKE_PREFIX_PATH=C:\Qt\6.8.3\msvc2022_64
|
||||||
|
|
||||||
Now, generate the build files:
|
Now, generate the build files with cmake via the vcpkg preset:
|
||||||
|
|
||||||
cmake -Bbuild .
|
cmake -Bbuild . --preset vcpkg
|
||||||
|
|
||||||
Then, finally build:
|
Then, finally, build in release mode\*:
|
||||||
|
|
||||||
cmake --build build
|
cmake --build build --config Release
|
||||||
|
|
||||||
> [!NOTE]
|
The compiled binaries should then be placed in `./build/bin/` and should be ready for redistribution without any further work.
|
||||||
> To build in release mode, add -DCMAKE_BUILD_TYPE=Release to the configure (first) command,
|
|
||||||
> and add --config Release to the build (second) command
|
|
||||||
|
|
||||||
The compiled binaries should then be located in `./build/bin/[Debug|Release]` and should be ready for redistribution without any further work.
|
If any of the compilation steps fail, or the binaries fail to execute, please create an issue so that this can be corrected.
|
||||||
|
|
||||||
If any of the compilation steps fail, or the binaries fail to execute, please create an issue so that this can be corrected.
|
\* Release mode is necessary as debug mode copies DLLs that are not linked to the output binary
|
||||||
|
|
||||||
|
DEVELOPER NOTE: AKA Not for you. If you get CUSTOM COMMAND BUILD errors just keep rerunning build
|
|
@ -10,7 +10,6 @@ else()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" )
|
set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" )
|
||||||
set(USE_CCACHE ON)
|
|
||||||
|
|
||||||
add_subdirectory(autogen)
|
add_subdirectory(autogen)
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,6 @@ int processHeader(fs::path srcRoot, fs::path srcPath, fs::path outPath) {
|
||||||
std::string srcRootStr = string_of(srcRoot);
|
std::string srcRootStr = string_of(srcRoot);
|
||||||
std::string srcPathStr = string_of(srcPath);
|
std::string srcPathStr = string_of(srcPath);
|
||||||
std::string outPathStr = string_of(outPath);
|
std::string outPathStr = string_of(outPath);
|
||||||
std::string logFileStr = outPathStr + ".log";
|
|
||||||
|
|
||||||
const char* cargs[] = { "-xc++", "-std=c++17", "-I", srcRootStr.c_str(), "-D__AUTOGEN__", 0 };
|
const char* cargs[] = { "-xc++", "-std=c++17", "-I", srcRootStr.c_str(), "-D__AUTOGEN__", 0 };
|
||||||
// THANK YOU SO MUCH THIS STACKOVERFLOW ANSWER IS SO HELPFUL
|
// THANK YOU SO MUCH THIS STACKOVERFLOW ANSWER IS SO HELPFUL
|
||||||
|
@ -43,24 +42,17 @@ int processHeader(fs::path srcRoot, fs::path srcPath, fs::path outPath) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We write to a special log file instead of stdout/stderr to
|
|
||||||
// 1. avoid confusion
|
|
||||||
// 2. prevent MSBuild from reading the word "error" and detecting there's a problem with the program (there isn't)
|
|
||||||
FILE* logout = fopen(logFileStr.c_str(), "w");
|
|
||||||
|
|
||||||
// Print errors
|
// Print errors
|
||||||
int ndiags = clang_getNumDiagnostics(unit);
|
int ndiags = clang_getNumDiagnostics(unit);
|
||||||
for (int i = 0; i < ndiags; i++) {
|
for (int i = 0; i < ndiags; i++) {
|
||||||
CXDiagnostic diag = clang_getDiagnostic(unit, i);
|
CXDiagnostic diag = clang_getDiagnostic(unit, i);
|
||||||
CXString str = clang_formatDiagnostic(diag, 0);
|
CXString str = clang_formatDiagnostic(diag, 0);
|
||||||
fprintf(logout, "diag: %s\n", clang_getCString(str));
|
fprintf(stderr, "diag: %s\n", clang_getCString(str));
|
||||||
|
|
||||||
clang_disposeString(str);
|
clang_disposeString(str);
|
||||||
clang_disposeDiagnostic(diag);
|
clang_disposeDiagnostic(diag);
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(logout);
|
|
||||||
|
|
||||||
CXCursor cursor = clang_getTranslationUnitCursor(unit);
|
CXCursor cursor = clang_getTranslationUnitCursor(unit);
|
||||||
|
|
||||||
object::AnalysisState objectAnlyState;
|
object::AnalysisState objectAnlyState;
|
||||||
|
@ -112,7 +104,5 @@ int main(int argc, char** argv) {
|
||||||
fs::path srcPath = argv[2];
|
fs::path srcPath = argv[2];
|
||||||
fs::path outPath = argv[3];
|
fs::path outPath = argv[3];
|
||||||
|
|
||||||
// fprintf(stderr, "Some error here\n");
|
|
||||||
// return 0;
|
|
||||||
return processHeader(srcRoot, srcPath, outPath);
|
return processHeader(srcRoot, srcPath, outPath);
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue