sintef-ocean / conan-ogre3d

Conan recipe for Ogre3D
MIT License
1 stars 2 forks source link

Freeimage plugin not building #8

Closed KonradNoTantoo closed 1 year ago

KonradNoTantoo commented 2 years ago

Hey!

Thanks for the great job you did here. I managed to run a test app on 13.4.0 in not much time.

However, I noticed a small issue with the freeimage plugin build option activated. Findfreeimage.cmake seems to be doing its job, and related variables look like what's expected, but the plugin DLL file is not built.

I noticed this when trying to replace your version of freeimage with the package on conancenter (it's quite new there). I observe the same behavior using theirs or yours. I thought you may want to know stuff like that. I've also found a few other issues will trying to build, so tell me whether to open other issues here (or not, or whatever else is most convenient for you). Some of them seem to be caused by Ogre itself, but it's hard to be certain without digging further.

Here's my configuration:

[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=Visual Studio
compiler.runtime=MD
compiler.version=17
os=Windows
os_build=Windows

Here's my test command (after adding your remote to conan):

conan install -b missing -o ogre3d:with_freetype=True -o ogre3d:with_sdl=True -o ogre3d:with_qt=False -o ogre3d:install_samples=True -o ogre3d:install_tools=True -o ogre3d:bindings_csharp=False -o ogre3d:bindings_java=False -o ogre3d:bindings_python=False -o ogre3d:rendersystem_direct3d11=True -o ogre3d:rendersystem_direct3d9=True -o ogre3d:rendersystem_metal=False -o ogre3d:rendersystem_opengl=True -o ogre3d:rendersystem_opengl3=True -o ogre3d:rendersystem_opengles=False -o ogre3d:rendersystem_tiny=False -o ogre3d:rendersystem_vulkan=False -o ogre3d:plugin_assimp=True -o ogre3d:plugin_bsp=True -o ogre3d:plugin_dotscene=True -o ogre3d:plugin_exrcodec=True -o ogre3d:plugin_freeimage=True -o ogre3d:plugin_glslang=True -o ogre3d:plugin_octree=True -o ogre3d:plugin_particlefx=True -o ogre3d:plugin_pcz=True -o ogre3d:plugin_stbi=True -o ogre3d:component_bites=True -o ogre3d:component_meshlodgenerator=True -o ogre3d:component_overlay=True -o ogre3d:component_overlay_imgui=True -o ogre3d:component_paging=True -o ogre3d:component_property=True -o ogre3d:component_rtshadersystem=True -o ogre3d:component_terrain=True -o ogre3d:component_volume=True -o ogre3d:enable_astc=True -o ogre3d:enable_dds=True -o ogre3d:enable_double=False -o ogre3d:enable_etc=True -o ogre3d:enable_gl_state_cache_support=True -o ogre3d:enable_gles2_glsl_optimiser=True -o ogre3d:enable_meshlod=True -o ogre3d:enable_node_inherit_transform=False -o ogre3d:enable_pvrtc=True -o ogre3d:enable_quad_buffer_stereo=False -o ogre3d:enable_viewport_orientationmode=False -o ogre3d:enable_zip=True -o ogre3d:build_tests=False --require-override zlib/1.2.12 ogre3d/13.4.0@sintef/stable

Ogre's CMake output excerpts:

...

-- DEPENDENCIES_DIR: C:/Users/USER/.conan/data/ogre3d/13.4.0/sintef/stable/build/f77bbe66e72644efad0228a825032c7ddda1a46b/Dependencies
-- Conan: Using autogenerated Findfreeimage.cmake
-- Found freeimage: 3.18.0 (found version "3.18.0")
-- Library freeimage found C:/Users/USER/.conan/data/freeimage/3.18.0/sintef/stable/package/9eb03a6803e93bee466f91e08c6f86e900042f8d/lib/freeimage.lib
-- Found: C:/Users/USER/.conan/data/freeimage/3.18.0/sintef/stable/package/9eb03a6803e93bee466f91e08c6f86e900042f8d/lib/freeimage.lib

...

-- The following external packages were located on your system.
-- This installation will have the extra features provided by these packages.
+ freetype
+ OpenGL
+ OpenGL ES 2.x
+ DirectX11
+ OpenEXR
+ Python
+ pugixml
+ zlib
+ Assimp
+ Bullet
+ SDL2
-----------------------------------------------------------------------------
-- The following OPTIONAL packages could NOT be located on your system.
-- Consider installing them to enable more features from this software.
+ freeimage: Support for commonly used graphics image formats <http://freeimage.sourceforge.net>
+ DirectX9: Support for the DirectX render system <http://msdn.microsoft.com/en-us/directx/>
+ cg: C for graphics shader language <http://developer.nvidia.com/object/cg_toolkit.html>
+ Vulkan SDK: Vulkan RenderSystem, glslang Plugin. Alternatively use system packages <https://vulkan.lunarg.com/>
+ SWIG: Language bindings (Python, Java, C#) for OGRE <http://www.swig.org/>
+ Qt: optional integration with the Qt Library for window creation and input <http://www.qt.io/>
+ Doxygen: Tool for building API documentation <http://doxygen.org>
+ Softimage: Softimage SDK needed for building XSIExporter <>
-----------------------------------------------------------------------------

--
----------------------------------------------------------------------------
  FEATURE SUMMARY
----------------------------------------------------------------------------

Building components:
  + Bites
  + Bullet
  + MeshLodGenerator
  + Overlay
  + Overlay Dear Imgui
  + Paging
  + Property
  + RTShader System
  + RTShader System Shaders
  + Terrain
  + Volume
Building plugins:
  + BSP scene manager
  + Glslang (SPIRV) program manager
  + Octree scene manager
  + OpenEXR image codec
  + STBI codec (generic)
  + Portal connected zone scene manager
  + Particle FX
  + DotScene loader
  + Assimp loader (.obj, .ply, .fbx and more)
Building rendersystems:
  + Direct3D 11
  + OpenGL
  + OpenGL 3+
  + OpenGL (all) StateCacheManager
Building executables:
  + Samples
  + Tools
Building core features:
  + Mesh Lod
  + DDS image codec (.dds)
  + PVRTC image codec (.pvr)
  + ETC image codec (.pkm, .ktx)
  + ASTC image codec (.astc)
  + ZIP archives
  + Multi-threaded WorkQueue

Build type:                      shared
Use double precision:            disabled
Assert mode:                     exceptions

CMakeCache.txt excerpts:

//Details about finding freeimage
FIND_PACKAGE_MESSAGE_DETAILS_freeimage:INTERNAL=[3.18.0][v3.18.0()]

....

//Build FreeImage codec.
OGRE_BUILD_PLUGIN_FREEIMAGE:INTERNAL=True

And last, freeimage's directory is correctly filled in conanbuildinfo.txt

kyllingstad commented 2 years ago

Thanks for letting us know! (And sorry for the late response.) Feel free to open more issues. We can't promise that they will get fixed anytime soon; we only have the capacity to fix problems when they directly affect our own work. But a bug report is useful both for us and for other users who should be aware of the issues, and it's also a good way for us to notify our users when the bugs eventually get fixed.

kyllingstad commented 2 years ago

Thanks for the great job you did here.

Actually, I think we should be thanking you for your work. I just realised that you are the author of the package recipe we forked to create this one. :)