Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build Error #515

Closed
mohsenkondori opened this issue Feb 27, 2024 · 19 comments
Closed

Build Error #515

mohsenkondori opened this issue Feb 27, 2024 · 19 comments

Comments

@mohsenkondori
Copy link

I get this build error, How to solve it? @fredemmott
ninja: error: 'third-party/directxtexEP-prefix/Release/lib/DirectXTex.lib', needed by 'src/utilities/OpenKneeboard-Viewer.exe', missing and no known rule to make it

Thanks

@fredemmott
Copy link
Collaborator

Ninja is incompatible, you must use the visual studio cmake generator instead

fredemmott added a commit that referenced this issue Feb 28, 2024
…Studio cmake generators

The main blocker would be #450 , but that's not documented or supported by Microsoft; if that were done, there's also lots of small things.

refs #515
@mohsenkondori
Copy link
Author

Thanks, does OpenKneeboard have any build docs?

@fredemmott
Copy link
Collaborator

@mohsenkondori
Copy link
Author

I get these errors.
windows, MSVC 1938 - Visual studio 2022
image

@fredemmott
Copy link
Collaborator

Sorry, I've not seen those errors before, and it builds on a clean install of windows and visual studio.

It looks like you're trying to build is as part of another project which is mostly using MSVC 2019 - try a standalone build, but then you need to look at the integration.

Also, if you are building it as part of 'qtquick3dxr67' and that project is ever sold or distributed in any form, that project will need to have source code available under the same license as OpenKneeboard itself.

@fredemmott
Copy link
Collaborator

There are general reports - not tied to OpenKneeboard - that FTK1011 may be sometimes caused by long build paths; from your screenshot, this seems like a plausible possibility.

@mohsenkondori
Copy link
Author

Thanks, I will try your suggestions.

I need to use XR_APILAYER_FREDEMMOTT_OpenKneeboard layer, Can you help me to do this (any suggestion)?

@fredemmott
Copy link
Collaborator

The API layer is only supported as part of OpenKneeboard itself; see https://openkneeboard.com/ for end user documentation.

OpenKneeboard and the API layer are not an SDK, and not supported as one.

@fredemmott
Copy link
Collaborator

Also worth noting that the API layer is under the same license as the rest of OpenKneeboard, which is GPL v2 with one specific additional linking exemption.

@mohsenkondori
Copy link
Author

I follow the license terms. I am testing your code to see if it meets my needs and is expandable.

@fredemmott
Copy link
Collaborator

If your needs include distributing a derived work of both qtquick3dxr and OpenKneeboard, it does not meet your needs, unless you obtained a a different OpenKneeboard-compatible license for qtquick3dxr than is noted on https://git.qt.io/annichol/qtquick3dxr. OpenKneeboard is not compatible with the Qt Commercial License, and OpenKneeboard intentionally does not allow 'any later version', so is incompatible with GPLv3.

If any use/distribution you plan would meet the license requirements that's of course fine, but:

  • I do not offer any help or support for use as an SDK; this includes build issues
  • I do not offer any end-user support for users of the API layer who may be using it via a different 'feeder' program
  • backwards/forwards API/ABI stability is not a goal, and will not be one
  • dependencies (including compiler requirements, C++/winrt, etc) will continue to change based on what's most convenient for the app as a whole
  • while contributions are very welcome, they will be weighed against maintenance burden and relevance; this means they should stay fairly closely related to OpenKneeboard's primary purpose

@mohsenkondori
Copy link
Author

mohsenkondori commented Mar 3, 2024

I don't want to use Quick3DXR. It was one of my options, but it had many problems. My main tool for development is Qt and I use it.
errors:

  • C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\05fcfda61917d14c9af0cd75f2747e54\CopyRuntimeFiles.rule;D:\OpenKneeboard\src\app\CMakeLists.txt' exited with code 1. [D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\src\app\CopyRuntimeFiles.vcxproj]

  • CMake Error at cmake_install.cmake:79 (file):
    file INSTALL cannot find
    "D:/Projects/ABuild/build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit/build32/src/injectables/Release/OpenKneeboard-WindowCaptureHook32.pdb":
    No error.

    C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\2686d46d091d9b8512a8e1b8c05039b1\thirtyTwoBitBuild-mkdir.rule;D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\2686d46d091d9b8512a8e1b8c05039b1\thirtyTwoBitBuild-download.rule;D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\2686d46d091d9b8512a8e1b8c05039b1\thirtyTwoBitBuild-update.rule;D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\2686d46d091d9b8512a8e1b8c05039b1\thirtyTwoBitBuild-patch.rule;D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\2686d46d091d9b8512a8e1b8c05039b1\thirtyTwoBitBuild-configure.rule;D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\2686d46d091d9b8512a8e1b8c05039b1\thirtyTwoBitBuild-build.rule;D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\2686d46d091d9b8512a8e1b8c05039b1\thirtyTwoBitBuild-install.rule;D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\814e44e32f69169c7a9e546e7d8f2cf0\thirtyTwoBitBuild-complete.rule;D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\CMakeFiles\7f8d1aa6a28b58fa09bd10a672d5d07b\thirtyTwoBitBuild.rule;D:\OpenKneeboard\CMakeLists.txt' exited with code 1. [D:\Projects\ABuild\build-OpenKneeboard-Clone_of_Desktop_Qt_6_7_0_MSVC2019_64bit\thirtyTwoBitBuild.vcxproj]

Please help me to build your repo, The OpenKneeboard has many dependencies and its hard to build it. thanks

@fredemmott
Copy link
Collaborator

fredemmott commented Mar 3, 2024

It looks like you’re trying to install without building all targets; this isn’t supported. You need to do a full build.

openkneeboard’s build automatically fetches and builds all dependencies beyond those included with visual studio.

@mohsenkondori
Copy link
Author

mohsenkondori commented Mar 4, 2024

I finally built it. thanks @fredemmott
For run an overlay over another VR app, Which example should I use?

@fredemmott
Copy link
Collaborator

There is no SDK; you can use the openkneeboard app and a window capture tab or web dashboard tab

@fredemmott
Copy link
Collaborator

Web dashboard tab will potentially give the best results as transparency is easy (just use CSS to set the body as transparent )

@fredemmott
Copy link
Collaborator

fredemmott commented Mar 4, 2024

If you do end up using the layer directly (not supported), please rename your copy to avoid conflicts and confusion; this should include both the “OpenKneeboard” and “FREDEMMOTT” parts of the name. “FREDEMMOTT” can be replaced with your own openxr vendor tag if you register one (see openxr docs), or “NOVENDOR” has became an unofficial standard.

to avoid conflicts , this should also include changing the ipc resource names by changing the project name constants in config.h.in

fredemmott added a commit that referenced this issue Mar 4, 2024
@mohsenkondori
Copy link
Author

mohsenkondori commented Mar 7, 2024

Hello again @fredemmott,

How can I change your UI to Qt ui (Widget or QML)? I need to separate backend from front end.

@fredemmott
Copy link
Collaborator

fredemmott commented Mar 7, 2024

In general, there's a distinction between 'app-common' and 'app-winui3'; the UI is mostly constrained to the latter. This split was introduced a few years back when moving from WxWidgets to WinUI3. You need to rewrite everything in app-winui3 and figure out how to integrate the build system.

The 'common' parts still require the Win/RT event system.

That said, this a move to Qt isn't a change I'd be interested in merging, and OpenKneeboard is not supported as an SDK. Locking as your use case is off-topic for this repository and the proejct as a whole.

@OpenKneeboard OpenKneeboard locked as off-topic and limited conversation to collaborators Mar 7, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants