USNavalResearchLaboratory / simdissdk

SIMDIS SDK
Other
120 stars 42 forks source link

Where are the precompiled SIMDIS SDK binaries? #89

Closed smarttigerfly closed 2 years ago

smarttigerfly commented 2 years ago

Where are the precompiled SIMDIS SDK binaries? Can I download it?

emminizer commented 2 years ago

Although we have generated binaries for each release, we do not always attach them to the release itself typically for storage space concerns. I have uploaded the 1.16 binaries alongside the 3rd party code, at https://github.com/USNavalResearchLaboratory/simdissdk/releases.

smarttigerfly commented 2 years ago

Thank for your help!

When I install it from source on windows platform using Microsoft Visual Studio 2019(vc14.2), and the 3rd party dependencies download from https://github.com/USNavalResearchLaboratory/simdissdk/releases, where I cannot find the precompiled SIMDIS SDK binaries (Release x64), one error: Error (active) E0135 class "osgEarth::TerrainEngineNode" has no member "getNode" simVis E:\simdissdk-simdissdk-1.16\SDK\simVis\Projector.cpp 1030 57errors(one for example): C1060 compiler is out of heap space (compiling source file E:\simdissdk-simdissdk-1.16\SDK\simVis\InsetViewEventHandler.cpp) simVis D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\type_traits 93

emminizer commented 2 years ago

We do our best to match API changes from upstream osgEarth while maintaining backwards compatibility. For a given release, there's usually an osgEarth tag we target, the master at that time. If you are using a newer osgEarth and an older SIMDIS SDK, it might not compile due to osgEarth API changes.

Be sure you're matching up 3rd party packs with source code releases.

Note that the current SIMDIS SDK main is in sync with current osgEarth master if you are building from GitHub source. Note also we are in the process of renaming the SIMDIS SDK master branch to main in line with community guidelines. This process has just started today.

smarttigerfly commented 2 years ago

I download the soure and 3rd party packs all from the https://github.com/USNavalResearchLaboratory/simdissdk/releases.

emminizer commented 2 years ago

I will investigate and get back later today

emminizer commented 2 years ago

On a clean machine I was unable to reproduce your issue:

  1. Downloaded source code ZIP from releases page
  2. Downloaded 3rd party library from same release
  3. Extracted both ZIP files, combining appropriately (note that the default GitHub source package includes the version etc. in the directory rather than just SIMDIS_SDK like the 3rd party ZIP)
  4. Run a command like mkdir b && cd b && cmake ../ -G"Visual Studio 16 2019" to configure. Notice the output text includes something like:
    -- Detected 3rd party pack at:
    --    C:/tmp/t/SIMDIS_SDK/3rd/win64_vc-14.2
    --    Auto-configuring defaults.
  5. Build, e.g. cmake --build . --config Release -- -m

I got no errors and the build finished completely. I saw Projector.cpp being compiled on the command line. Everything I did was command line, which we use for automation. Building and configuring through the GUIs should be the same.

If you follow these steps and still have compile errors, please double check that you've downloaded the 3rd party pack for 1.16, along with the source code for 1.16. Ensure the 3rd party pack is found.

I am slightly concerned about your heap error, but I don't see that on my version (note MSVC 2019 Pro not Community). If there's a change you need to make to the configuration to support something with Community we are happy to accept PRs.

Hope this helps.

smarttigerfly commented 2 years ago

Thank you!

I try it again.

  1. run ".\vcpkg.exe integrate remove". I install some other C++ libraryies using vcpkg.
  2. When I build it in "Debug(x64)" model, one error: E0070 incomplete type is not allowed for QPaiterPath in simQt\CategoryDataBreadcrumbs.cpp, so I add "#include " header file in this .cpp file.
  3. All succeeded, but the one "INSTALL.vcxproj" failed(Error: MSB3073, Microsoft.CppCommon.targets 155 line). The reason is "file INSTALL cannot find "E:/simdissdk-simdissdk-1.16/OSG_PLUGIN_PATH-NOTFOUND": No such file". I specify OSG_PLUGIN_PATH in cmke-gui, and try again. INSTALL failed again: "file INSTALL cannot make directory "E:/Program Files(x86)/SIMDIS_SDK/bin/osgPlugins-DisplaySettings::SHADER_GL3" , the path is illegal. But I don't know the "DisplaySettings::SHADER_GL3" come from.
  4. However, the libraries all have been build. The "INSTALL project" is insignificant.

I add "#include " header file in "simQt\CategoryDataBreadcrumbs.cpp" file. Is it reasonable?

Thank you again!

emminizer commented 2 years ago

Thanks for your contributions. Yes, the #include <QPainterPath> is reasonable. We build against Qt 5.9.8 locally due to issues with later versions and dock widgets, which we use extensively.

OSG_PLUGIN_PATH is set on first configure in CMakeImport/ImportOSG.cmake. The install commands that are in here are used if INSTALL_THIRDPARTY_LIBRARIES is on (which makes sense if using our 3rd party pack).

If you're using vcpkg you might be on your own. We do not currently use it, though I'm aware of it and would like to make the SDK more compatible with it, we do not currently have the bandwidth to do so. You might need to dig into the ImportOSG.cmake code in this case. Your error does imply to me that CMake variable OSG_VERSION is incorrect (DisplaySettings:SHADER_GL3). This OSG_VERSION comes from:

set(OSG_VERSION 3.6.5)
...
    execute_process(COMMAND ${OSG_VERSION_EXE} --version-number OUTPUT_VARIABLE _OSG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
...
    if(NOT _OSG_VERSION STREQUAL "")
        set(OSG_VERSION ${_OSG_VERSION})
    endif()

So my guess is that it looks like your osgversion --version-number is printing out extra junk.

smarttigerfly commented 2 years ago

When I configure using cmake-gui, even I put the "3rd" folder in the source directory, like "E:\simdissdk-simdissdk-1.16\3rd", some 3rd party dependencies path(for example OSGEARTH_LIBRARY_DEBUG_NAME) is not located automatically, should be specified manually. Just a reminder, no need to reply.

emminizer commented 2 years ago

image

I'm not seeing the same. It's all automatically found. This might be due to environment variables or configurations on your system.

smarttigerfly commented 2 years ago

Thanks Dan. When I download the 1.16 binaries from Release , it is aborted after downloading part of it, prompting that authorization is required(a login is required).

Untitled

image