View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0012371 | CMake | CMake | public | 2011-07-29 04:42 | 2016-06-10 14:31 | ||||
Reporter | Michael Broutin | ||||||||
Assigned To | Kitware Robot | ||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||
Status | closed | Resolution | moved | ||||||
Platform | Code::Blocks with MingW | OS | Windows | OS Version | Windows 7 | ||||
Product Version | CMake 2.8.4 | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0012371: Resource compilation gets wrong parameters on CB+MingW | ||||||||
Description | Hi, First, please see this thread on the Ogre Forum : http://www.ogre3d.org/forums/viewtopic.php?f=2&t=63559 [^] It appears that from CMake 2.8.4 (tested : not fixed in CMake 2.8.5), there's a problem with resource compiling with mingw : windres.exe is called with what should be a compiler-only option (something like -msse), so compilation fails... Right now, the only recommendation is : don't use CMake version above 2.8.3 ... Is there a better workaround? Or can it be fixed within CMake itself? | ||||||||
Steps To Reproduce | Get the Ogre source. Try to compile it with Code::Blocks/MingW (Visual Studio doesn't have this problem) | ||||||||
Additional Information | Attached : CMakeLists.txt from OgreMain | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | ![]() #------------------------------------------------------------------- # This file is part of the CMake build system for OGRE # (Object-oriented Graphics Rendering Engine) # For the latest info, see http://www.ogre3d.org/ # # The contents of this file are placed in the public domain. Feel # free to make use of it in any way you like. #------------------------------------------------------------------- ############################################################ # OgreMain core library ############################################################ PROJECT(OgreMain) include(PrecompiledHeader) # define header and source files for the library set (HEADER_FILES include/asm_math.h include/Ogre.h include/OgreAlignedAllocator.h include/OgreAnimable.h include/OgreAnimation.h include/OgreAnimationState.h include/OgreAnimationTrack.h include/OgreAny.h include/OgreArchive.h include/OgreArchiveFactory.h include/OgreArchiveManager.h include/OgreAtomicWrappers.h include/OgreAutoParamDataSource.h include/OgreAxisAlignedBox.h include/OgreBillboard.h include/OgreBillboardChain.h include/OgreBillboardParticleRenderer.h include/OgreBillboardSet.h include/OgreBitwise.h include/OgreBlendMode.h include/OgreBone.h include/OgreBorderPanelOverlayElement.h ${OGRE_BINARY_DIR}/include/OgreBuildSettings.h include/OgreCamera.h include/OgreCodec.h include/OgreColourValue.h include/OgreCommon.h include/OgreCompositionPass.h include/OgreCompositionTargetPass.h include/OgreCompositionTechnique.h include/OgreCompositor.h include/OgreCompositorChain.h include/OgreCompositorLogic.h include/OgreCompositorInstance.h include/OgreCompositorManager.h include/OgreConfig.h include/OgreConfigDialog.h include/OgreConfigFile.h include/OgreConfigOptionMap.h include/OgreController.h include/OgreControllerManager.h include/OgreConvexBody.h include/OgreCustomCompositionPass.h include/OgreDataStream.h include/OgreDefaultHardwareBufferManager.h include/OgreDeflate.h include/OgreDepthBuffer.h include/OgreDistanceLodStrategy.h include/OgreDynLib.h include/OgreDynLibManager.h include/OgreEdgeListBuilder.h include/OgreEntity.h include/OgreErrorDialog.h include/OgreException.h include/OgreExternalTextureSource.h include/OgreExternalTextureSourceManager.h include/OgreFactoryObj.h include/OgreFileSystem.h include/OgreFont.h include/OgreFontManager.h include/OgreFrameListener.h include/OgreFrustum.h include/OgreGpuProgram.h include/OgreGpuProgramManager.h include/OgreGpuProgramParams.h include/OgreGpuProgramUsage.h include/OgreHardwareBuffer.h include/OgreHardwareBufferManager.h include/OgreHardwareIndexBuffer.h include/OgreHardwareOcclusionQuery.h include/OgreHardwarePixelBuffer.h include/OgreHardwareVertexBuffer.h include/OgreHeaderPrefix.h include/OgreHeaderSuffix.h include/OgreHighLevelGpuProgram.h include/OgreHighLevelGpuProgramManager.h include/OgreImage.h include/OgreImageCodec.h include/OgreInstanceBatch.h include/OgreInstanceBatchHW.h include/OgreInstanceBatchHW_VTF.h include/OgreInstanceBatchShader.h include/OgreInstanceBatchVTF.h include/OgreInstancedGeometry.h include/OgreInstancedEntity.h include/OgreInstanceManager.h include/OgreIteratorRange.h include/OgreIteratorWrapper.h include/OgreIteratorWrappers.h include/OgreKeyFrame.h include/OgreLight.h include/OgreLodListener.h include/OgreLodStrategy.h include/OgreLodStrategyManager.h include/OgreLog.h include/OgreLogManager.h include/OgreManualObject.h include/OgreMaterial.h include/OgreMaterialManager.h include/OgreMaterialSerializer.h include/OgreMath.h include/OgreMatrix3.h include/OgreMatrix4.h include/OgreMemoryAllocatedObject.h include/OgreMemoryAllocatorConfig.h include/OgreMemoryNedAlloc.h include/OgreMemoryNedPooling.h include/OgreMemoryStdAlloc.h include/OgreMemorySTLAllocator.h include/OgreMemoryTracker.h include/OgreMesh.h include/OgreMeshFileFormat.h include/OgreMeshManager.h include/OgreMeshSerializer.h include/OgreMeshSerializerImpl.h include/OgreMovableObject.h include/OgreMovablePlane.h include/OgreNode.h include/OgreNumerics.h include/OgreOptimisedUtil.h include/OgreOverlay.h include/OgreOverlayContainer.h include/OgreOverlayElement.h include/OgreOverlayElementCommands.h include/OgreOverlayElementFactory.h include/OgreOverlayManager.h include/OgrePanelOverlayElement.h include/OgreParticle.h include/OgreParticleAffector.h include/OgreParticleAffectorFactory.h include/OgreParticleEmitter.h include/OgreParticleEmitterCommands.h include/OgreParticleEmitterFactory.h include/OgreParticleIterator.h include/OgreParticleScriptCompiler.h include/OgreParticleSystem.h include/OgreParticleSystemManager.h include/OgreParticleSystemRenderer.h include/OgrePass.h include/OgrePatchMesh.h include/OgrePatchSurface.h include/OgrePixelCountLodStrategy.h include/OgrePixelFormat.h include/OgrePlane.h include/OgrePlaneBoundedVolume.h include/OgrePlatform.h include/OgrePlatformInformation.h include/OgrePlugin.h include/OgrePolygon.h include/OgrePose.h include/OgrePredefinedControllers.h include/OgrePrefabFactory.h include/OgrePrerequisites.h include/OgreProfiler.h include/OgreProgressiveMesh.h include/OgreQuaternion.h include/OgreRadixSort.h include/OgreRay.h include/OgreRectangle.h include/OgreRectangle2D.h include/OgreRenderable.h include/OgreRenderObjectListener.h include/OgreRenderOperation.h include/OgreRenderQueue.h include/OgreRenderQueueInvocation.h include/OgreRenderQueueListener.h include/OgreRenderQueueSortingGrouping.h include/OgreRenderSystem.h include/OgreRenderSystemCapabilities.h include/OgreRenderSystemCapabilitiesManager.h include/OgreRenderSystemCapabilitiesSerializer.h include/OgreRenderTarget.h include/OgreRenderTargetListener.h include/OgreRenderTexture.h include/OgreRenderToVertexBuffer.h include/OgreRenderWindow.h include/OgreResource.h include/OgreResourceBackgroundQueue.h include/OgreResourceGroupManager.h include/OgreResourceManager.h include/OgreRibbonTrail.h include/OgreRoot.h include/OgreRotationalSpline.h include/OgreSceneManager.h include/OgreSceneManagerEnumerator.h include/OgreSceneNode.h include/OgreSceneQuery.h include/OgreScriptCompiler.h include/OgreScriptLexer.h include/OgreScriptLoader.h include/OgreScriptParser.h include/OgreScriptTranslator.h include/OgreSearchOps.h include/OgreSerializer.h include/OgreShadowCameraSetup.h include/OgreShadowCameraSetupFocused.h include/OgreShadowCameraSetupLiSPSM.h include/OgreShadowCameraSetupPlaneOptimal.h include/OgreShadowCameraSetupPSSM.h include/OgreShadowCaster.h include/OgreShadowTextureManager.h include/OgreShadowVolumeExtrudeProgram.h include/OgreSharedPtr.h include/OgreSimpleRenderable.h include/OgreSimpleSpline.h include/OgreSingleton.h include/OgreSkeleton.h include/OgreSkeletonFileFormat.h include/OgreSkeletonInstance.h include/OgreSkeletonManager.h include/OgreSkeletonSerializer.h include/OgreSmallVector.h include/OgreSphere.h include/OgreSpotShadowFadePng.h include/OgreStableHeaders.h include/OgreStaticFaceGroup.h include/OgreStaticGeometry.h include/OgreStdHeaders.h include/OgreStreamSerialiser.h include/OgreString.h include/OgreStringConverter.h include/OgreStringInterface.h include/OgreStringVector.h include/OgreSubEntity.h include/OgreSubMesh.h include/OgreTagPoint.h include/OgreTangentSpaceCalc.h include/OgreTechnique.h include/OgreTextAreaOverlayElement.h include/OgreTexture.h include/OgreTextureManager.h include/OgreTextureUnitState.h include/OgreTimer.h include/OgreUnifiedHighLevelGpuProgram.h include/OgreUserObjectBindings.h include/OgreUTFString.h include/OgreVector2.h include/OgreVector3.h include/OgreVector4.h include/OgreVertexBoneAssignment.h include/OgreVertexIndexData.h include/OgreViewport.h include/OgreWindowEventUtilities.h include/OgreWireBoundingBox.h include/OgreWorkQueue.h ) set (SOURCE_FILES src/OgreAlignedAllocator.cpp src/OgreAnimable.cpp src/OgreAnimation.cpp src/OgreAnimationState.cpp src/OgreAnimationTrack.cpp src/OgreArchiveManager.cpp src/OgreAutoParamDataSource.cpp src/OgreAxisAlignedBox.cpp src/OgreBillboard.cpp src/OgreBillboardChain.cpp src/OgreBillboardParticleRenderer.cpp src/OgreBillboardSet.cpp src/OgreBone.cpp src/OgreBorderPanelOverlayElement.cpp src/OgreCamera.cpp src/OgreCodec.cpp src/OgreColourValue.cpp src/OgreCommon.cpp src/OgreCompositionPass.cpp src/OgreCompositionTargetPass.cpp src/OgreCompositionTechnique.cpp src/OgreCompositor.cpp src/OgreCompositorChain.cpp src/OgreCompositorInstance.cpp src/OgreCompositorManager.cpp src/OgreConfigFile.cpp src/OgreControllerManager.cpp src/OgreConvexBody.cpp src/OgreDataStream.cpp src/OgreDefaultHardwareBufferManager.cpp src/OgreDefaultSceneQueries.cpp src/OgreDeflate.cpp src/OgreDepthBuffer.cpp src/OgreDistanceLodStrategy.cpp src/OgreDynLib.cpp src/OgreDynLibManager.cpp src/OgreEdgeListBuilder.cpp src/OgreEntity.cpp src/OgreException.cpp src/OgreExternalTextureSource.cpp src/OgreExternalTextureSourceManager.cpp src/OgreFileSystem.cpp src/OgreFont.cpp src/OgreFontManager.cpp src/OgreFrustum.cpp src/OgreGpuProgram.cpp src/OgreGpuProgramManager.cpp src/OgreGpuProgramParams.cpp src/OgreGpuProgramUsage.cpp src/OgreHardwareBufferManager.cpp src/OgreHardwareIndexBuffer.cpp src/OgreHardwareOcclusionQuery.cpp src/OgreHardwarePixelBuffer.cpp src/OgreHardwareVertexBuffer.cpp src/OgreHighLevelGpuProgram.cpp src/OgreHighLevelGpuProgramManager.cpp src/OgreImage.cpp src/OgreImageResampler.h src/OgreInstanceBatch.cpp src/OgreInstanceBatchHW.cpp src/OgreInstanceBatchHW_VTF.cpp src/OgreInstanceBatchShader.cpp src/OgreInstanceBatchVTF.cpp src/OgreInstancedGeometry.cpp src/OgreInstancedEntity.cpp src/OgreInstanceManager.cpp src/OgreKeyFrame.cpp src/OgreLight.cpp src/OgreLodStrategy.cpp src/OgreLodStrategyManager.cpp src/OgreLog.cpp src/OgreLogManager.cpp src/ogremain.map src/OgreManualObject.cpp src/OgreMaterial.cpp src/OgreMaterialManager.cpp src/OgreMaterialSerializer.cpp src/OgreMath.cpp src/OgreMatrix3.cpp src/OgreMatrix4.cpp src/OgreMemoryAllocatedObject.cpp src/OgreMemoryNedAlloc.cpp src/OgreMemoryNedPooling.cpp src/OgreMemoryTracker.cpp src/OgreMesh.cpp src/OgreMeshManager.cpp src/OgreMeshSerializer.cpp src/OgreMeshSerializerImpl.cpp src/OgreMovableObject.cpp src/OgreMovablePlane.cpp src/OgreNode.cpp src/OgreNumerics.cpp src/OgreOptimisedUtil.cpp src/OgreOptimisedUtilGeneral.cpp # src/OgreOptimisedUtilNEON.cpp src/OgreOptimisedUtilSSE.cpp # src/OgreOptimisedUtilVFP.cpp src/OgreOverlay.cpp src/OgreOverlayContainer.cpp src/OgreOverlayElement.cpp src/OgreOverlayElementCommands.cpp src/OgreOverlayElementFactory.cpp src/OgreOverlayManager.cpp src/OgrePanelOverlayElement.cpp src/OgreParticle.cpp src/OgreParticleEmitter.cpp src/OgreParticleEmitterCommands.cpp src/OgreParticleIterator.cpp src/OgreParticleSystem.cpp src/OgreParticleSystemManager.cpp src/OgrePass.cpp src/OgrePatchMesh.cpp src/OgrePatchSurface.cpp src/OgrePixelConversions.h src/OgrePixelCountLodStrategy.cpp src/OgrePixelFormat.cpp src/OgrePlane.cpp src/OgrePlatformInformation.cpp src/OgrePolygon.cpp src/OgrePose.cpp src/OgrePrecompiledHeaders.cpp src/OgrePredefinedControllers.cpp src/OgrePrefabFactory.cpp src/OgreProfiler.cpp src/OgreProgressiveMesh.cpp src/OgreQuaternion.cpp src/OgreRectangle2D.cpp src/OgreRenderQueue.cpp src/OgreRenderQueueInvocation.cpp src/OgreRenderQueueSortingGrouping.cpp src/OgreRenderSystem.cpp src/OgreRenderSystemCapabilities.cpp src/OgreRenderSystemCapabilitiesManager.cpp src/OgreRenderSystemCapabilitiesSerializer.cpp src/OgreRenderTarget.cpp src/OgreRenderTexture.cpp src/OgreRenderToVertexBuffer.cpp src/OgreRenderWindow.cpp src/OgreResource.cpp src/OgreResourceBackgroundQueue.cpp src/OgreResourceGroupManager.cpp src/OgreResourceManager.cpp src/OgreRibbonTrail.cpp src/OgreRoot.cpp src/OgreRotationSpline.cpp src/OgreSceneManager.cpp src/OgreSceneManagerEnumerator.cpp src/OgreSceneNode.cpp src/OgreSceneQuery.cpp src/OgreScriptCompiler.cpp src/OgreScriptLexer.cpp src/OgreScriptParser.cpp src/OgreScriptTranslator.cpp src/OgreSerializer.cpp src/OgreShadowCameraSetup.cpp src/OgreShadowCameraSetupFocused.cpp src/OgreShadowCameraSetupLiSPSM.cpp src/OgreShadowCameraSetupPlaneOptimal.cpp src/OgreShadowCameraSetupPSSM.cpp src/OgreShadowCaster.cpp src/OgreShadowTextureManager.cpp src/OgreShadowVolumeExtrudeProgram.cpp src/OgreSIMDHelper.h src/OgreSimpleRenderable.cpp src/OgreSimpleSpline.cpp src/OgreSkeleton.cpp src/OgreSkeletonInstance.cpp src/OgreSkeletonManager.cpp src/OgreSkeletonSerializer.cpp src/OgreSmallVector.cpp src/OgreStaticGeometry.cpp src/OgreStreamSerialiser.cpp src/OgreString.cpp src/OgreStringConverter.cpp src/OgreStringInterface.cpp src/OgreSubEntity.cpp src/OgreSubMesh.cpp src/OgreTagPoint.cpp src/OgreTangentSpaceCalc.cpp src/OgreTechnique.cpp src/OgreTextAreaOverlayElement.cpp src/OgreTexture.cpp src/OgreTextureManager.cpp src/OgreTextureUnitState.cpp src/OgreUnifiedHighLevelGpuProgram.cpp src/OgreUserObjectBindings.cpp src/OgreUTFString.cpp src/OgreVector2.cpp src/OgreVector3.cpp src/OgreVector4.cpp src/OgreVertexIndexData.cpp src/OgreViewport.cpp src/OgreWindowEventUtilities.cpp src/OgreWireBoundingBox.cpp src/OgreWorkQueue.cpp ) # Add platform specific files if (WIN32) include_directories("include/WIN32") set(PLATFORM_HEADER_FILES include/WIN32/OgreConfigDialogImp.h include/WIN32/OgreErrorDialogImp.h include/WIN32/OgreTimerImp.h include/WIN32/OgreMinGWSupport.h ) set(PLATFORM_SOURCE_FILES src/WIN32/OgreConfigDialog.cpp src/WIN32/OgreErrorDialog.cpp src/WIN32/OgreTimer.cpp src/WIN32/resource.h src/WIN32/OgreWin32Resources.rc src/WIN32/winres.h ) set(RESOURCE_FILES src/WIN32/resource.h src/WIN32/OgreWin32Resources.rc src/WIN32/winres.h ) source_group(Resources FILES ${RESOURCE_FILES}) set(PLATFORM_HEADER_INSTALL "WIN32") if (MINGW) # There's a bug in CMake which makes it ignore resource files with Mingw # This is a manual fix for the moment. get_filename_component(OGRE_MINGW_PATH ${CMAKE_CXX_COMPILER} PATH) #set(OGRE_MINGW_RC ${OGRE_MINGW_PATH}/windres.exe) file(GLOB OGRE_MINGW_RC_NAMES "${OGRE_MINGW_PATH}/*windres*") find_program(OGRE_MINGW_RC NAMES ${OGRE_MINGW_RC_NAMES} HINTS ${OGRE_MINGW_PATH} DOC "Path to MinGW resource compiler") if (NOT OGRE_MINGW_RC) message(SEND_ERROR "Could not find MinGW resource compiler. Please specify path in OGRE_MINGW_RC.") endif () mark_as_advanced(OGRE_MINGW_RC) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/OgreWin32Resources.rc.obj COMMAND ${OGRE_MINGW_RC} -I${CMAKE_CURRENT_SOURCE_DIR}/src/WIN32 -i${CMAKE_CURRENT_SOURCE_DIR}/src/WIN32/OgreWin32Resources.rc -o${CMAKE_CURRENT_BINARY_DIR}/OgreWin32Resources.rc.obj DEPENDS ${RESOURCE_FILES}) list(APPEND PLATFORM_SOURCE_FILES ${CMAKE_CURRENT_BINARY_DIR}/OgreWin32Resources.rc.obj) endif () elseif (APPLE) if (OGRE_BUILD_PLATFORM_APPLE_IOS) include_directories("include/iPhone") set(PLATFORM_HEADER_FILES include/iPhone/OgreConfigDialogImp.h include/iPhone/OgreErrorDialogImp.h include/iPhone/OgreTimerImp.h include/iPhone/macUtils.h ) set(PLATFORM_SOURCE_FILES src/iPhone/OgreConfigDialog.cpp src/iPhone/OgreErrorDialog.cpp src/iPhone/OgreTimer.cpp src/iPhone/macUtils.mm src/OgreSearchOps.cpp ) set(PLATFORM_LIBS "") set(PLATFORM_HEADER_INSTALL "iPhone") else () include_directories("include/OSX") set(PLATFORM_HEADER_FILES # Hack around a CMake bug. The first item has its role set to Project instead of public. # including it twice works around the issue # In addition, include OgreZip.h because of a similar issue include/OSX/macUtils.h include/OSX/macUtils.h include/OSX/OgreConfigDialogImp.h include/OSX/OgreErrorDialogImp.h include/OSX/OgreTimerImp.h include/OgreZip.h ) set(PLATFORM_SOURCE_FILES src/OSX/OgreConfigDialog.mm src/OSX/OgreErrorDialog.mm src/OSX/OgreTimer.cpp src/OSX/macUtils.cpp src/OgreSearchOps.cpp include/OSX/ogrelogo.png ) set(RESOURCE_FILES include/OSX/ogrelogo.png ) source_group(Resources FILES ${RESOURCE_FILES}) set(PLATFORM_LIBS ${Carbon_LIBRARY_FWK} ${Cocoa_LIBRARY_FWK}) set(PLATFORM_HEADER_INSTALL "OSX") endif () elseif (UNIX) if (OGRE_BUILD_PLATFORM_TEGRA2) include_directories("include/Tegra2") set(PLATFORM_HEADER_FILES include/Tegra2/OgreConfigDialogImp.h include/Tegra2/OgreErrorDialogImp.h include/Tegra2/OgreTimerImp.h ) set(PLATFORM_SOURCE_FILES src/Tegra2/OgreConfigDialog.cpp src/Tegra2/OgreErrorDialog.cpp src/Tegra2/OgreTimer.cpp src/OgreSearchOps.cpp ) set(PLATFORM_LIBS ${X11_LIBRARIES} pthread dl) set(PLATFORM_HEADER_INSTALL "Tegra2") else () include_directories(include/GLX ${X11_INCLUDE_DIR}) set(PLATFORM_HEADER_FILES include/GLX/OgreConfigDialogImp.h include/GLX/OgreErrorDialogImp.h include/GLX/OgreTimerImp.h ) set(PLATFORM_SOURCE_FILES src/GLX/GLX_backdrop.h src/GLX/OgreConfigDialog.cpp src/GLX/OgreErrorDialog.cpp src/GLX/OgreTimer.cpp src/OgreSearchOps.cpp ) set(PLATFORM_LIBS ${X11_LIBRARIES} ${X11_Xt_LIB} ${XAW_LIBRARY} pthread) set(PLATFORM_HEADER_INSTALL "GLX") # some platforms require explicit linking to libdl, see if it's available find_library(DL_LIBRARY NAMES dl dlsym) mark_as_advanced(DL_LIBRARY) if (DL_LIBRARY) list(APPEND PLATFORM_LIBS dl) endif () endif(OGRE_BUILD_PLATFORM_TEGRA2) elseif (SYMBIAN) include_directories(include/symbian) set(PLATFORM_HEADER_FILES include/GLX/OgreTimerImp.h include/symbian/OgreConfigDialogImp.h include/symbian/OgreErrorDialogImp.h ) set(PLATFORM_SOURCE_FILES src/OgreSearchOps.cpp src/GLX/OgreTimer.cpp src/symbian/OgreConfigDialog.cpp src/symbian/OgreErrorDialog.cpp ) set(PLATFORM_HEADER_INSTALL "SYMBIAN") endif(WIN32) # Configure threading files set(THREAD_HEADER_FILES include/Threading/OgreThreadDefines.h include/Threading/OgreThreadHeaders.h include/Threading/OgreDefaultWorkQueue.h ) if (OGRE_THREAD_PROVIDER EQUAL 0) list(APPEND THREAD_HEADER_FILES include/Threading/OgreThreadDefinesNone.h include/Threading/OgreDefaultWorkQueueStandard.h ) set(THREAD_SOURCE_FILES src/Threading/OgreDefaultWorkQueueStandard.cpp ) elseif (OGRE_THREAD_PROVIDER EQUAL 1) list(APPEND THREAD_HEADER_FILES include/Threading/OgreThreadDefinesBoost.h include/Threading/OgreThreadHeadersBoost.h include/Threading/OgreDefaultWorkQueueStandard.h ) set(THREAD_SOURCE_FILES src/Threading/OgreDefaultWorkQueueStandard.cpp ) elseif (OGRE_THREAD_PROVIDER EQUAL 2) list(APPEND THREAD_HEADER_FILES include/Threading/OgreThreadDefinesPoco.h include/Threading/OgreThreadHeadersPoco.h include/Threading/OgreDefaultWorkQueueStandard.h ) set(THREAD_SOURCE_FILES src/Threading/OgreDefaultWorkQueueStandard.cpp ) elseif (OGRE_THREAD_PROVIDER EQUAL 3) list(APPEND THREAD_HEADER_FILES include/Threading/OgreThreadDefinesTBB.h include/Threading/OgreThreadHeadersTBB.h include/Threading/OgreDefaultWorkQueueTBB.h ) set(THREAD_SOURCE_FILES src/Threading/OgreDefaultWorkQueueTBB.cpp ) endif () # Add needed definitions and nedmalloc include dir add_definitions(-DOGRE_NONCLIENT_BUILD -DFREEIMAGE_LIB -D_MT -D_USRDLL) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/nedmalloc) set(LIBRARIES ${FREETYPE_LIBRARIES} ${PLATFORM_LIBS} ) if (OGRE_CONFIG_THREADS) list(APPEND LIBRARIES ${OGRE_THREAD_LIBRARIES}) endif () if (OGRE_CONFIG_ENABLE_FREEIMAGE) list(APPEND HEADER_FILES include/OgreFreeImageCodec.h) list(APPEND SOURCE_FILES src/OgreFreeImageCodec.cpp) list(APPEND LIBRARIES "${FreeImage_LIBRARIES}") endif() if (OGRE_CONFIG_ENABLE_DDS) list(APPEND HEADER_FILES include/OgreDDSCodec.h) list(APPEND SOURCE_FILES src/OgreDDSCodec.cpp) endif () if (OGRE_CONFIG_ENABLE_PVRTC) list(APPEND HEADER_FILES include/OgrePVRTCCodec.h) list(APPEND SOURCE_FILES src/OgrePVRTCCodec.cpp) endif () if (OGRE_CONFIG_ENABLE_ZIP) list(APPEND HEADER_FILES include/OgreZip.h) list(APPEND SOURCE_FILES src/OgreZip.cpp) list(APPEND LIBRARIES "${ZZip_LIBRARIES}") list(APPEND LIBRARIES "${ZLIB_LIBRARIES}") endif () list(APPEND LIBRARIES "${GLSL_Optimizer_LIBRARIES}") list(APPEND LIBRARIES "${HLSL2GLSL_LIBRARIES}") set (TARGET_LINK_FLAGS "") # setup OgreMain target # exclude OgreAlignedAllocator.cpp from unity builds; causes problems on Linux ogre_add_library(OgreMain ${OGRE_LIB_TYPE} ${PREC_HEADER} ${HEADER_FILES} ${SOURCE_FILES} ${PLATFORM_HEADER_FILES} ${PLATFORM_SOURCE_FILES} ${THREAD_HEADER_FILES} ${THREAD_SOURCE_FILES} SEPARATE "src/OgreAlignedAllocator.cpp") # In visual studio 2010 - 64 bit we get this error: "LINK : fatal error LNK1210: exceeded internal ILK size limit; link with /INCREMENTAL:NO" if(WIN32 AND MSVC10 AND CMAKE_CL_64) set_target_properties(OgreMain PROPERTIES VERSION ${OGRE_SOVERSION} LINK_FLAGS "/INCREMENTAL:NO" ) else() set_target_properties(OgreMain PROPERTIES VERSION ${OGRE_SOVERSION}) endif() if (APPLE) if (NOT OGRE_BUILD_PLATFORM_APPLE_IOS) set_target_properties(OgreMain PROPERTIES FRAMEWORK TRUE) # Set the INSTALL_PATH so that Frameworks can be local set_target_properties(OgreMain PROPERTIES BUILD_WITH_INSTALL_RPATH 1 INSTALL_NAME_DIR "@executable_path/../Frameworks" ) set_target_properties(OgreMain PROPERTIES PUBLIC_HEADER "${HEADER_FILES}") set_target_properties(OgreMain PROPERTIES RESOURCE "${RESOURCE_FILES}") set_source_files_properties("${RESOURCE_FILES}" PROPERTIES MACOSX_PACKAGE_LOCATION Resources) set_target_properties(OgreMain PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES") set_target_properties(OgreMain PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${OGRE_SOURCE_DIR}/OgreMain/include/OgreStableHeaders.h") set_target_properties(OgreMain PROPERTIES XCODE_ATTRIBUTE_GCC_UNROLL_LOOPS "YES") add_custom_command(TARGET OgreMain POST_BUILD COMMAND mkdir ARGS -p ${OGRE_BINARY_DIR}/lib/$(CONFIGURATION)/Ogre.framework/Headers/Threading COMMAND /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp ARGS -exclude .DS_Store -exclude .hg -exclude 'CMakeLists.txt' -resolve-src-symlinks ${OGRE_SOURCE_DIR}/OgreMain/include/Threading/* ${OGRE_BINARY_DIR}/lib/$(CONFIGURATION)/Ogre.framework/Headers/Threading/ COMMAND mkdir ARGS -p ${OGRE_BINARY_DIR}/lib/$(CONFIGURATION)/Ogre.framework/Headers/OSX COMMAND /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp ARGS -exclude .DS_Store -exclude .hg -exclude 'CMakeLists.txt' -resolve-src-symlinks ${OGRE_SOURCE_DIR}/OgreMain/include/OSX/*.h ${OGRE_BINARY_DIR}/lib/$(CONFIGURATION)/Ogre.framework/Headers/OSX/ ) else () set_target_properties(OgreMain PROPERTIES INSTALL_NAME_DIR "OGRE") set_target_properties(OgreMain PROPERTIES XCODE_ATTRIBUTE_GCC_THUMB_SUPPORT "NO") set_target_properties(OgreMain PROPERTIES XCODE_ATTRIBUTE_GCC_UNROLL_LOOPS "YES") set_target_properties(OgreMain PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer") set_target_properties(OgreMain PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES") endif () # Framework is called 'Ogre' set_target_properties(OgreMain PROPERTIES OUTPUT_NAME Ogre) endif () target_link_libraries(OgreMain ${LIBRARIES}) if (MINGW) # may need winsock htons functions for FreeImage target_link_libraries(OgreMain ws2_32) endif () # specify a precompiled header to use use_precompiled_header(OgreMain "${CMAKE_CURRENT_SOURCE_DIR}/include/OgreStableHeaders.h" "${CMAKE_CURRENT_SOURCE_DIR}/src/OgrePrecompiledHeaders.cpp" ) # install OgreMain ogre_config_lib(OgreMain TRUE) install(FILES ${HEADER_FILES} DESTINATION include/OGRE ) install(FILES ${PLATFORM_HEADER_FILES} DESTINATION include/OGRE/${PLATFORM_HEADER_INSTALL} ) install(FILES ${THREAD_HEADER_FILES} DESTINATION include/OGRE/Threading ) | ||||||||
Relationships | |||||||||||
|
Relationships |
Notes | |
(0028237) Sam Morris (reporter) 2012-01-10 10:42 |
According to the CMake developers, Ogre is doing the wrong thing here. See http://www.cmake.org/Bug/view.php?id=12871 [^] for information and http://www.ogre3d.org/mantis/view.php?id=492 [^] for the fix. |
(0030368) David Cole (manager) 2012-08-11 21:09 |
Sending old, never assigned issues to the backlog. (The age of the bug, plus the fact that it's never been assigned to anyone means that nobody is actively working on it...) If an issue you care about is sent to the backlog when you feel it should have been addressed in a different manner, please bring it up on the CMake mailing list for discussion. Sign up for the mailing list here, if you're not already on it: http://www.cmake.org/mailman/listinfo/cmake [^] It's easy to re-activate a bug here if you can find a CMake developer who has the bandwidth to take it on, and ferry a fix through to our 'next' branch for dashboard testing. |
(0041874) Kitware Robot (administrator) 2016-06-10 14:28 |
Resolving issue as `moved`. This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2011-07-29 04:42 | Michael Broutin | New Issue | |
2011-07-29 04:42 | Michael Broutin | File Added: CMakeLists.txt | |
2012-01-10 10:42 | Sam Morris | Note Added: 0028237 | |
2012-02-27 08:57 | Brad King | Relationship added | related to 0012444 |
2012-02-27 08:58 | Brad King | Relationship added | related to 0012998 |
2012-08-11 21:09 | David Cole | Status | new => backlog |
2012-08-11 21:09 | David Cole | Note Added: 0030368 | |
2016-06-10 14:28 | Kitware Robot | Note Added: 0041874 | |
2016-06-10 14:28 | Kitware Robot | Status | backlog => resolved |
2016-06-10 14:28 | Kitware Robot | Resolution | open => moved |
2016-06-10 14:28 | Kitware Robot | Assigned To | => Kitware Robot |
2016-06-10 14:31 | Kitware Robot | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |