X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=source%2FIrrlicht%2FCMakeLists.txt;h=ad11dd45aa46adfc4aace25eee6cabf6cd3b4ce3;hb=d97d1708d68a98c039db8a06c4110bfc961d3fb1;hp=5d803f0dcd53f61fb3bb6239e6a60889bdc03687;hpb=22c3219ff01a6a5618f69edb383827609a1eacee;p=irrlicht.git diff --git a/source/Irrlicht/CMakeLists.txt b/source/Irrlicht/CMakeLists.txt index 5d803f0..ad11dd4 100644 --- a/source/Irrlicht/CMakeLists.txt +++ b/source/Irrlicht/CMakeLists.txt @@ -1,58 +1,265 @@ option(BUILD_SHARED_LIBS "Build shared library" TRUE) +option(USE_SDL2 "Use the SDL2 backend" FALSE) # Compiler flags add_definitions(-DIRRLICHT_EXPORTS) -if(NOT BUILD_SHARED_LIBS) +if(BUILD_SHARED_LIBS) + if(WIN32) + set(API_IMPORT "__declspec(dllimport)") + set(API_EXPORT "__declspec(dllexport)") + elseif(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$") + set(API_EXPORT "__attribute__ ((visibility(\"default\")))") # only necessary if default visibility is set to hidden + endif() +else() add_definitions(-D_IRR_STATIC_LIB_) endif() +add_definitions("-DIRRLICHT_API=${API_EXPORT}") + if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(-D_DEBUG) endif() set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) if(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$") set(CMAKE_CXX_FLAGS_RELEASE "-O3") set(CMAKE_CXX_FLAGS_DEBUG "-g") add_compile_options(-Wall -pipe -fno-exceptions -fno-rtti) + + # Enable SSE for floating point math on 32-bit x86 by default + # reasoning see minetest issue #11810 and https://gcc.gnu.org/wiki/FloatingPointMath + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + include(CheckCXXSourceCompiles) + check_cxx_source_compiles("#ifndef __i686__\n#error\n#endif\nint main(){}" IS_I686) + if(IS_I686) + message(STATUS "Detected Intel x86: using SSE instead of x87 FPU") + add_compile_options(-mfpmath=sse -msse) + endif() + endif() + elseif(MSVC) string(APPEND CMAKE_CXX_STANDARD_LIBRARIES " msvcrt.lib") # ???? fuck off add_compile_options(/GR- /Zl) + + # Enable SSE for floating point math on 32-bit x86 by default + # reasoning see minetest issue #11810 and https://gcc.gnu.org/wiki/FloatingPointMath + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + add_compile_options(/arch:SSE) + endif() +endif() + +# Sanity-check version + +include(CheckCXXSourceCompiles) +set(CMAKE_REQUIRED_INCLUDES ${PROJECT_SOURCE_DIR}/include) +unset(REVISION_SANITY_CHECK CACHE) +check_cxx_source_compiles("#include \n\ +#if IRRLICHT_VERSION_MT_REVISION != ${IRRLICHTMT_REVISION}\n\ +#error\n\ +#endif\n\ +int main() {}" REVISION_SANITY_CHECK) +if(NOT REVISION_SANITY_CHECK) + message(FATAL_ERROR "IrrlichtMt revision number mismatches between CMake and headers.") +endif() + +# Platform-independent configuration (hard-coded currently) +add_definitions( + -DIRR_ENABLE_BUILTIN_FONT + -D_IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ + ) + +# Platform-specific configuration + +if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") + set(SOLARIS TRUE) +endif() + +# Device + +if(WIN32) + add_definitions(-D_IRR_WINDOWS_ -D_IRR_WINDOWS_API_) + set(DEVICE "WINDOWS") +elseif(APPLE) + add_definitions(-D_IRR_OSX_PLATFORM_) + set(DEVICE "OSX") +elseif(ANDROID) + add_definitions(-D_IRR_ANDROID_PLATFORM_ -D_IRR_COMPILE_ANDROID_ASSET_READER_) + if(USE_SDL2) + message(SEND_ERROR "SDL2 backend is not supported on Android") + endif() + set(DEVICE "Android") +elseif(EMSCRIPTEN) + add_definitions(-D_IRR_EMSCRIPTEN_PLATFORM_ -D_IRR_COMPILE_WITH_EGL_MANAGER_) + set(LINUX_PLATFORM TRUE) + set(DEVICE "SDL") +elseif(SOLARIS) + add_definitions(-D_IRR_SOLARIS_PLATFORM_ -D_IRR_POSIX_API_) + set(DEVICE "X11") +else() + add_definitions(-D_IRR_POSIX_API_) + set(LINUX_PLATFORM TRUE) + set(DEVICE "X11") +endif() + +if(LINUX_PLATFORM) + add_definitions(-D_IRR_LINUX_PLATFORM_) +endif() + +if(USE_SDL2) + set(DEVICE "SDL") +endif() + +add_definitions("-D_IRR_COMPILE_WITH_${DEVICE}_DEVICE_") + +# X11 + +if(DEVICE STREQUAL "X11") + option(USE_X11 "Use X11" TRUE) +else() + set(USE_X11 FALSE) +endif() + +if(LINUX_PLATFORM AND USE_X11) + option(USE_XINPUT2 "Use XInput2" TRUE) + option(USE_XCURSOR "Use XCursor" FALSE) +else() + set(USE_XINPUT2 FALSE) + set(USE_XCURSOR FALSE) +endif() + +# Joystick + +if(NOT (BSD OR SOLARIS OR EMSCRIPTEN)) + add_definitions(-D_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) +endif() + +# OpenGL + +option(ENABLE_OPENGL3 "Enable OpenGL 3+" FALSE) + +if(ANDROID OR EMSCRIPTEN) + set(ENABLE_OPENGL FALSE) +else() + option(ENABLE_OPENGL "Enable OpenGL" TRUE) +endif() + +if(EMSCRIPTEN OR APPLE) + set(ENABLE_GLES1 FALSE) +else() + if(ANDROID) + set(DEFAULT_GLES1 TRUE) + endif() + option(ENABLE_GLES1 "Enable OpenGL ES" ${DEFAULT_GLES1}) +endif() + +if(APPLE) + set(ENABLE_GLES2 FALSE) + set(ENABLE_WEBGL1 FALSE) +else() + if(ANDROID OR EMSCRIPTEN) + set(DEFAULT_GLES2 TRUE) + endif() + if(EMSCRIPTEN) + set(DEFAULT_WEBGL1 TRUE) + endif() + option(ENABLE_GLES2 "Enable OpenGL ES 2+" ${DEFAULT_GLES2}) + option(ENABLE_WEBGL1 "Enable WebGL (requires GLES2)" ${DEFAULT_WEBGL1}) + if(ENABLE_WEBGL1) + set(ENABLE_GLES2 TRUE) + endif() +endif() + +if(ENABLE_OPENGL) + add_definitions(-D_IRR_COMPILE_WITH_OPENGL_) + if(DEVICE STREQUAL "WINDOWS") + add_definitions(-D_IRR_COMPILE_WITH_WGL_MANAGER_ -D_IRR_OPENGL_USE_EXTPOINTER_) + elseif(DEVICE STREQUAL "X11") + add_definitions(-D_IRR_COMPILE_WITH_GLX_MANAGER_ -D_IRR_OPENGL_USE_EXTPOINTER_) + elseif(DEVICE STREQUAL "OSX") + add_definitions(-D_IRR_COMPILE_WITH_NSOGL_MANAGER_) + elseif(DEVICE STREQUAL "SDL") + add_definitions(-D_IRR_OPENGL_USE_EXTPOINTER_) + endif() +endif() + +if(ENABLE_OPENGL3) + if (NOT USE_SDL2) + message(SEND_ERROR "OpenGL3 support requires SDL2") + endif() + set(USE_SDLGL ON) + set(USE_SDLGL3 ON) +endif() + +if(ENABLE_GLES1) + if (USE_SDL2) + message(SEND_ERROR "OpenGL ES 1 is not supported with SDL2") + endif() + add_definitions(-D_IRR_COMPILE_WITH_OGLES1_) + if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$") + add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_ -D_IRR_OGLES1_USE_EXTPOINTER_) + endif() +endif() + +if(ENABLE_GLES2) + add_definitions(-D_IRR_COMPILE_WITH_OGLES2_) + if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$" OR EMSCRIPTEN) + add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_ -D_IRR_OGLES2_USE_EXTPOINTER_) + elseif(DEVICE STREQUAL "SDL") + set(USE_SDLGL ON) + set(USE_SDLGLES2 ON) + endif() endif() +if(ENABLE_WEBGL1) + add_definitions(-D_IRR_COMPILE_WITH_WEBGL1_) +endif() + +# Misc + +include(TestBigEndian) +TEST_BIG_ENDIAN(BIG_ENDIAN) +if(BIG_ENDIAN) + add_definitions(-D__BIG_ENDIAN__) +endif() + +# Configuration report + +message(STATUS "Device: ${DEVICE}") +message(STATUS "OpenGL: ${ENABLE_OPENGL}") +message(STATUS "OpenGL 3: ${ENABLE_OPENGL3}") +message(STATUS "OpenGL ES: ${ENABLE_GLES1}") +message(STATUS "OpenGL ES 2: ${ENABLE_GLES2}") +message(STATUS "WebGL: ${ENABLE_WEBGL1}") + # Required libs find_package(ZLIB REQUIRED) find_package(JPEG REQUIRED) find_package(PNG REQUIRED) -# To configure the features available in this Irrlicht build please edit -# include/IrrCompileConfig.h and re-run CMake from a clean state -include(CheckSymbolExists) -set(CMAKE_REQUIRED_INCLUDES ${PROJECT_SOURCE_DIR}/include) -unset(OGLES1_ENABLED CACHE) -unset(OGLES2_ENABLED CACHE) -unset(OGL_ENABLED CACHE) -check_symbol_exists(_IRR_COMPILE_WITH_OGLES1_ "IrrCompileConfig.h" OGLES1_ENABLED) -if(OGLES1_ENABLED) +if(ENABLE_GLES1) # only tested on Android, probably works on Linux (is this needed anywhere else?) find_library(OPENGLES_LIBRARY NAMES GLESv1_CM REQUIRED) find_library(EGL_LIBRARY NAMES EGL REQUIRED) message(STATUS "Found OpenGLES: ${OPENGLES_LIBRARY}") endif() -check_symbol_exists(_IRR_COMPILE_WITH_OGLES2_ "IrrCompileConfig.h" OGLES2_ENABLED) -if(OGLES2_ENABLED) +if(ENABLE_GLES2) find_package(OpenGLES2 REQUIRED) endif() -check_symbol_exists(_IRR_COMPILE_WITH_OPENGL_ "IrrCompileConfig.h" OGL_ENABLED) -if(OGL_ENABLED) +if(ENABLE_OPENGL) set(OpenGL_GL_PREFERENCE "LEGACY") find_package(OpenGL REQUIRED) endif() +if(USE_SDL2) + find_package(SDL2 CONFIG REQUIRED) + message(STATUS "Found SDL2: ${SDL2_LIBRARIES}") +endif() # Platform-specific libs @@ -67,6 +274,9 @@ elseif(APPLE) else() # Unix probably find_package(X11 REQUIRED) + if(USE_XINPUT2 AND NOT X11_Xi_FOUND) + message(FATAL_ERROR "XInput not found") + endif() endif() set(link_includes @@ -76,6 +286,7 @@ set(link_includes "${ZLIB_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${PNG_INCLUDE_DIR}" + "${SDL2_INCLUDE_DIRS}" ${OPENGL_INCLUDE_DIR} ${OPENGLES2_INCLUDE_DIR} @@ -89,6 +300,7 @@ set(link_libs "${ZLIB_LIBRARY}" "${JPEG_LIBRARY}" "${PNG_LIBRARY}" + "${SDL2_LIBRARIES}" ${OPENGL_LIBRARIES} ${OPENGLES_LIBRARY} @@ -101,38 +313,15 @@ set(link_libs "$<$:gdi32>" "$<$:winmm>" ${X11_X11_LIB} - ${X11_Xxf86vm_LIB} + ${X11_Xi_LIB} ) # Source files set(IRRMESHLOADER - CBSPMeshFileLoader.cpp - CMD2MeshFileLoader.cpp - CMD3MeshFileLoader.cpp - CMS3DMeshFileLoader.cpp CB3DMeshFileLoader.cpp - C3DSMeshFileLoader.cpp - COgreMeshFileLoader.cpp COBJMeshFileLoader.cpp - CCSMLoader.cpp - CDMFLoader.cpp - CLMTSMeshFileLoader.cpp - CMY3DMeshFileLoader.cpp - COCTLoader.cpp CXMeshFileLoader.cpp - CSTLMeshFileLoader.cpp - CLWOMeshFileLoader.cpp - CPLYMeshFileLoader.cpp - CSMFMeshFileLoader.cpp - CMeshTextureLoader.cpp -) - -set(IRRMESHWRITER - CSTLMeshWriter.cpp - COBJMeshWriter.cpp - CPLYMeshWriter.cpp - CB3DMeshWriter.cpp ) add_library(IRRMESHOBJ OBJECT @@ -140,13 +329,7 @@ add_library(IRRMESHOBJ OBJECT CBoneSceneNode.cpp CMeshSceneNode.cpp CAnimatedMeshSceneNode.cpp - CAnimatedMeshMD2.cpp - CAnimatedMeshMD3.cpp - CQ3LevelMesh.cpp - CQuake3ShaderSceneNode.cpp - CAnimatedMeshHalfLife.cpp ${IRRMESHLOADER} - ${IRRMESHWRITER} ) add_library(IRROBJ OBJECT @@ -154,162 +337,75 @@ add_library(IRROBJ OBJECT CCameraSceneNode.cpp CDummyTransformationSceneNode.cpp CEmptySceneNode.cpp - CGeometryCreator.cpp - CLightSceneNode.cpp CMeshManipulator.cpp - CMetaTriangleSelector.cpp - COctreeSceneNode.cpp - COctreeTriangleSelector.cpp CSceneCollisionManager.cpp CSceneManager.cpp - CShadowVolumeSceneNode.cpp - CSkyBoxSceneNode.cpp - CSkyDomeSceneNode.cpp - CTerrainSceneNode.cpp - CTerrainTriangleSelector.cpp - CVolumeLightSceneNode.cpp - CCubeSceneNode.cpp - CSphereSceneNode.cpp - CTextSceneNode.cpp - CTriangleBBSelector.cpp - CTriangleSelector.cpp - CWaterSurfaceSceneNode.cpp CMeshCache.cpp - CDefaultSceneNodeAnimatorFactory.cpp - CDefaultSceneNodeFactory.cpp -) - -add_library(IRRPARTICLEOBJ OBJECT - CParticleAnimatedMeshSceneNodeEmitter.cpp - CParticleBoxEmitter.cpp - CParticleCylinderEmitter.cpp - CParticleMeshEmitter.cpp - CParticlePointEmitter.cpp - CParticleRingEmitter.cpp - CParticleSphereEmitter.cpp - CParticleAttractionAffector.cpp - CParticleFadeOutAffector.cpp - CParticleGravityAffector.cpp - CParticleRotationAffector.cpp - CParticleSystemSceneNode.cpp - CParticleScaleAffector.cpp -) - -add_library(IRRANIMOBJ OBJECT - CSceneNodeAnimatorCameraFPS.cpp - CSceneNodeAnimatorCameraMaya.cpp - CSceneNodeAnimatorCollisionResponse.cpp - CSceneNodeAnimatorDelete.cpp - CSceneNodeAnimatorFlyCircle.cpp - CSceneNodeAnimatorFlyStraight.cpp - CSceneNodeAnimatorFollowSpline.cpp - CSceneNodeAnimatorRotation.cpp - CSceneNodeAnimatorTexture.cpp ) set(IRRDRVROBJ CNullDriver.cpp COpenGLCacheHandler.cpp COpenGLDriver.cpp - COpenGLNormalMapRenderer.cpp - COpenGLParallaxMapRenderer.cpp COpenGLShaderMaterialRenderer.cpp COpenGLSLMaterialRenderer.cpp COpenGLExtensionHandler.cpp - CD3D9Driver.cpp - CD3D9HLSLMaterialRenderer.cpp - CD3D9NormalMapRenderer.cpp - CD3D9ParallaxMapRenderer.cpp - CD3D9ShaderMaterialRenderer.cpp - CD3D9Texture.cpp COGLESDriver.cpp COGLESExtensionHandler.cpp - COGLES2Driver.cpp - COGLES2ExtensionHandler.cpp - COGLES2FixedPipelineRenderer.cpp - COGLES2MaterialRenderer.cpp - COGLES2NormalMapRenderer.cpp - COGLES2ParallaxMapRenderer.cpp - COGLES2Renderer2D.cpp - CWebGL1Driver.cpp CGLXManager.cpp CWGLManager.cpp CEGLManager.cpp + CSDLManager.cpp + mt_opengl_loader.cpp ) set(IRRIMAGEOBJ CColorConverter.cpp CImage.cpp CImageLoaderBMP.cpp - CImageLoaderDDS.cpp CImageLoaderJPG.cpp - CImageLoaderPCX.cpp CImageLoaderPNG.cpp - CImageLoaderPSD.cpp - CImageLoaderPVR.cpp CImageLoaderTGA.cpp - CImageLoaderPPM.cpp - CImageLoaderWAL.cpp - CImageLoaderRGB.cpp - CImageWriterBMP.cpp CImageWriterJPG.cpp - CImageWriterPCX.cpp CImageWriterPNG.cpp - CImageWriterPPM.cpp - CImageWriterPSD.cpp - CImageWriterTGA.cpp ) add_library(IRRVIDEOOBJ OBJECT - CVideoModeList.cpp CFPSCounter.cpp ${IRRDRVROBJ} ${IRRIMAGEOBJ} ) -add_library(IRRSWRENDEROBJ OBJECT - CSoftwareDriver.cpp - CSoftwareTexture.cpp - CTRFlat.cpp - CTRFlatWire.cpp - CTRGouraud.cpp - CTRGouraudWire.cpp - CTRNormalMap.cpp - CTRStencilShadow.cpp - CTRTextureFlat.cpp - CTRTextureFlatWire.cpp - CTRTextureGouraud.cpp - CTRTextureGouraudAdd.cpp - CTRTextureGouraudNoZ.cpp - CTRTextureGouraudWire.cpp - CZBuffer.cpp - CTRTextureGouraudVertexAlpha2.cpp - CTRTextureGouraudNoZ2.cpp - CTRTextureLightMap2_M2.cpp - CTRTextureLightMap2_M4.cpp - CTRTextureLightMap2_M1.cpp - CSoftwareDriver2.cpp - CSoftwareTexture2.cpp - CTRTextureGouraud2.cpp - CTRGouraud2.cpp - CTRGouraudAlpha2.cpp - CTRGouraudAlphaNoZ2.cpp - CTRTextureDetailMap2.cpp - CTRTextureGouraudAdd2.cpp - CTRTextureGouraudAddNoZ2.cpp - CTRTextureWire2.cpp - CTRTextureLightMap2_Add.cpp - CTRTextureLightMapGouraud2_M4.cpp - IBurningShader.cpp - CTRTextureBlend.cpp - CTRTextureGouraudAlpha.cpp - CTRTextureGouraudAlphaNoZ.cpp - CDepthBuffer.cpp - CBurningShader_Raster_Reference.cpp - CTR_transparent_reflection_2_layer.cpp - CTRGouraudNoZ2.cpp - burning_shader_color.cpp -) +if(USE_SDLGL) + target_sources(IRRVIDEOOBJ PUBLIC + OpenGL/Driver.cpp + OpenGL/ExtensionHandler.cpp + OpenGL/FixedPipelineRenderer.cpp + OpenGL/MaterialRenderer.cpp + OpenGL/Renderer2D.cpp + ) +endif() + +if(USE_SDLGL3) + target_sources(IRRVIDEOOBJ PUBLIC + OpenGL3/Driver.cpp + ) +endif() + +if(USE_SDLGLES2) + target_sources(IRRVIDEOOBJ PUBLIC + OpenGLES2/Driver.cpp + ) +else() + target_sources(IRRVIDEOOBJ PUBLIC + COGLES2Driver.cpp + COGLES2ExtensionHandler.cpp + COGLES2FixedPipelineRenderer.cpp + COGLES2MaterialRenderer.cpp + COGLES2Renderer2D.cpp + CWebGL1Driver.cpp + ) +endif() add_library(IRRIOOBJ OBJECT CFileList.cpp @@ -318,31 +414,25 @@ add_library(IRRIOOBJ OBJECT CMemoryFile.cpp CReadFile.cpp CWriteFile.cpp - CWADReader.cpp CZipReader.cpp - CPakReader.cpp - CNPKReader.cpp - CTarReader.cpp - CMountPointReader.cpp CAttributes.cpp ) add_library(IRROTHEROBJ OBJECT CIrrDeviceSDL.cpp CIrrDeviceLinux.cpp - CIrrDeviceConsole.cpp CIrrDeviceStub.cpp CIrrDeviceWin32.cpp - CIrrDeviceFB.cpp CLogger.cpp COSOperator.cpp Irrlicht.cpp os.cpp - leakHunter.cpp - CProfiler.cpp - utf8.cpp ) +if(ENABLE_OPENGL3) + target_compile_definitions(IRROTHEROBJ PRIVATE ENABLE_OPENGL3) +endif() + if(ANDROID) target_sources(IRROTHEROBJ PRIVATE Android/CIrrDeviceAndroid.cpp @@ -359,43 +449,41 @@ elseif(APPLE) ) endif() +if(USE_X11) + target_compile_definitions(IRROTHEROBJ PRIVATE _IRR_COMPILE_WITH_X11_) +endif() + +if(USE_XINPUT2) + target_compile_definitions(IRROTHEROBJ PRIVATE _IRR_LINUX_X11_XINPUT2_) +endif() + +if(USE_XCURSOR) + target_compile_definitions(IRROTHEROBJ PRIVATE _IRR_LINUX_XCURSOR_) +endif() + add_library(IRRGUIOBJ OBJECT CGUIButton.cpp CGUICheckBox.cpp CGUIComboBox.cpp - CGUIContextMenu.cpp CGUIEditBox.cpp CGUIEnvironment.cpp CGUIFileOpenDialog.cpp CGUIFont.cpp CGUIImage.cpp - CGUIInOutFader.cpp CGUIListBox.cpp - CGUIMenu.cpp - CGUIMeshViewer.cpp - CGUIMessageBox.cpp - CGUIModalScreen.cpp CGUIScrollBar.cpp - CGUISpinBox.cpp CGUISkin.cpp CGUIStaticText.cpp CGUITabControl.cpp - CGUITable.cpp - CGUIToolBar.cpp - CGUIWindow.cpp - CGUIColorSelectDialog.cpp - CDefaultGUIElementFactory.cpp CGUISpriteBank.cpp CGUIImageList.cpp - CGUITreeView.cpp - CGUIProfiler.cpp ) # Library add_library(IrrlichtMt) foreach(object_lib - IRRMESHOBJ IRROBJ IRRPARTICLEOBJ IRRANIMOBJ IRRVIDEOOBJ IRRSWRENDEROBJ + IRRMESHOBJ IRROBJ IRRVIDEOOBJ IRRIOOBJ IRROTHEROBJ IRRGUIOBJ) # Set include directories for object library compilation target_include_directories(${object_lib} PRIVATE ${link_includes}) @@ -417,14 +505,16 @@ target_include_directories(IrrlichtMt target_link_libraries(IrrlichtMt PRIVATE ${link_libs}) -# Propagate static library flag to lib users, only needed for Windows -if(NOT BUILD_SHARED_LIBS) - target_compile_definitions(IrrlichtMt INTERFACE _IRR_STATIC_LIB_) +if(WIN32) + target_compile_definitions(IrrlichtMt INTERFACE _IRR_WINDOWS_API_) # used in _IRR_DEBUG_BREAK_IF definition in a public header +endif() +target_compile_definitions(IrrlichtMt INTERFACE "IRRLICHT_API=${API_IMPORT}") +if(APPLE OR ANDROID OR EMSCRIPTEN) + target_compile_definitions(IrrlichtMt PUBLIC IRR_MOBILE_PATHS) endif() set_target_properties(IrrlichtMt PROPERTIES VERSION ${PROJECT_VERSION} - SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) if(WIN32)