mirror of
https://github.com/minetest/irrlicht.git
synced 2025-01-12 19:00:31 +01:00
e60921f0cb
I'm not sure what these actually are, but the situation is the same as the last commit.
558 lines
13 KiB
CMake
558 lines
13 KiB
CMake
if(NOT ANDROID AND NOT APPLE)
|
|
set(DEFAULT_SDL2 ON)
|
|
endif()
|
|
|
|
option(BUILD_SHARED_LIBS "Build shared library" TRUE)
|
|
option(USE_SDL2 "Use the SDL2 backend" ${DEFAULT_SDL2})
|
|
|
|
# Compiler flags
|
|
|
|
add_definitions(-DIRRLICHT_EXPORTS)
|
|
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)
|
|
|
|
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)
|
|
|
|
# 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()
|
|
|
|
add_compile_options(/D_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING)
|
|
endif()
|
|
|
|
# Sanity-check version
|
|
|
|
include(CheckCXXSourceCompiles)
|
|
set(CMAKE_REQUIRED_INCLUDES ${PROJECT_SOURCE_DIR}/include)
|
|
unset(REVISION_SANITY_CHECK CACHE)
|
|
check_cxx_source_compiles("#include <IrrCompileConfig.h>\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
|
|
)
|
|
|
|
# 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_)
|
|
if(USE_SDL2)
|
|
message(FATAL_ERROR "SDL2 device is not (yet) 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")
|
|
elseif(DEVICE STREQUAL "SDL")
|
|
message(FATAL_ERROR "SDL was used but not enabled?!")
|
|
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
|
|
|
|
if(USE_SDL2)
|
|
option(ENABLE_OPENGL3 "Enable OpenGL 3+" TRUE)
|
|
else()
|
|
set(ENABLE_OPENGL3 FALSE)
|
|
endif()
|
|
|
|
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_)
|
|
set(OPENGL_DIRECT_LINK TRUE) # not yet possible to remove this
|
|
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(FATAL_ERROR "OpenGL 3 driver requires SDL2")
|
|
endif()
|
|
set(OPENGL_DIRECT_LINK TRUE) # TODO
|
|
set(USE_SDLGL ON)
|
|
set(USE_SDLGL3 ON)
|
|
endif()
|
|
|
|
if(ENABLE_GLES1)
|
|
if (USE_SDL2)
|
|
message(FATAL_ERROR "OpenGL ES 1 is not supported with SDL2")
|
|
endif()
|
|
add_definitions(-D_IRR_COMPILE_WITH_OGLES1_)
|
|
set(OPENGLES_DIRECT_LINK TRUE)
|
|
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_)
|
|
set(OPENGLES2_DIRECT_LINK TRUE) # not yet possible to remove this
|
|
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")
|
|
add_definitions(-D_IRR_OGLES2_USE_EXTPOINTER_)
|
|
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}")
|
|
if (USE_SDLGLES2)
|
|
message(STATUS "OpenGL ES 2: ON (unified)")
|
|
elseif (ENABLE_GLES2)
|
|
message(STATUS "OpenGL ES 2: ON (legacy)")
|
|
else()
|
|
message(STATUS "OpenGL ES 2: OFF")
|
|
endif()
|
|
message(STATUS "WebGL: ${ENABLE_WEBGL1}")
|
|
|
|
# Required libs
|
|
|
|
find_package(ZLIB REQUIRED)
|
|
find_package(JPEG REQUIRED)
|
|
find_package(PNG REQUIRED)
|
|
|
|
|
|
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()
|
|
if(ENABLE_GLES2)
|
|
find_package(OpenGLES2 REQUIRED)
|
|
endif()
|
|
if(ENABLE_OPENGL OR ENABLE_OPENGL3)
|
|
find_package(OpenGL REQUIRED)
|
|
endif()
|
|
if(USE_SDL2)
|
|
find_package(SDL2 2.0.10 CONFIG REQUIRED)
|
|
message(STATUS "Found SDL2: ${SDL2_LIBRARIES}")
|
|
endif()
|
|
|
|
# Platform-specific libs
|
|
|
|
if(ANDROID)
|
|
enable_language(C)
|
|
elseif(APPLE)
|
|
find_library(COCOA_LIB Cocoa REQUIRED)
|
|
find_library(IOKIT_LIB IOKit REQUIRED)
|
|
|
|
add_definitions(-DGL_SILENCE_DEPRECATION)
|
|
elseif(NOT USE_SDL2)
|
|
# 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
|
|
"${PROJECT_SOURCE_DIR}/include"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
|
|
|
"${ZLIB_INCLUDE_DIR}"
|
|
"${JPEG_INCLUDE_DIR}"
|
|
"${PNG_INCLUDE_DIR}"
|
|
"$<$<BOOL:${USE_SDL2}>:${SDL2_INCLUDE_DIRS}>"
|
|
|
|
${OPENGL_INCLUDE_DIR}
|
|
${OPENGLES2_INCLUDE_DIR}
|
|
${EGL_INCLUDE_DIR}
|
|
|
|
"$<$<PLATFORM_ID:Android>:${ANDROID_NDK}/sources/android/native_app_glue>"
|
|
"$<$<BOOL:${USE_X11}>:${X11_INCLUDE_DIR}>"
|
|
)
|
|
|
|
# Source files
|
|
|
|
set(IRRMESHLOADER
|
|
CB3DMeshFileLoader.cpp
|
|
COBJMeshFileLoader.cpp
|
|
CXMeshFileLoader.cpp
|
|
)
|
|
|
|
add_library(IRRMESHOBJ OBJECT
|
|
CSkinnedMesh.cpp
|
|
CBoneSceneNode.cpp
|
|
CMeshSceneNode.cpp
|
|
CAnimatedMeshSceneNode.cpp
|
|
${IRRMESHLOADER}
|
|
)
|
|
|
|
add_library(IRROBJ OBJECT
|
|
CBillboardSceneNode.cpp
|
|
CCameraSceneNode.cpp
|
|
CDummyTransformationSceneNode.cpp
|
|
CEmptySceneNode.cpp
|
|
CMeshManipulator.cpp
|
|
CSceneCollisionManager.cpp
|
|
CSceneManager.cpp
|
|
CMeshCache.cpp
|
|
)
|
|
|
|
set(IRRDRVROBJ
|
|
CNullDriver.cpp
|
|
CGLXManager.cpp
|
|
CWGLManager.cpp
|
|
CEGLManager.cpp
|
|
CSDLManager.cpp
|
|
mt_opengl_loader.cpp
|
|
)
|
|
|
|
if(ENABLE_OPENGL)
|
|
set(IRRDRVROBJ
|
|
${IRRDRVROBJ}
|
|
COpenGLCacheHandler.cpp
|
|
COpenGLDriver.cpp
|
|
COpenGLSLMaterialRenderer.cpp
|
|
COpenGLExtensionHandler.cpp
|
|
)
|
|
endif()
|
|
|
|
if(ENABLE_GLES1)
|
|
set(IRRDRVROBJ
|
|
${IRRDRVROBJ}
|
|
COGLESDriver.cpp
|
|
COGLESExtensionHandler.cpp
|
|
)
|
|
endif()
|
|
|
|
set(IRRIMAGEOBJ
|
|
CColorConverter.cpp
|
|
CImage.cpp
|
|
CImageLoaderBMP.cpp
|
|
CImageLoaderJPG.cpp
|
|
CImageLoaderPNG.cpp
|
|
CImageLoaderTGA.cpp
|
|
CImageWriterJPG.cpp
|
|
CImageWriterPNG.cpp
|
|
)
|
|
|
|
add_library(IRRVIDEOOBJ OBJECT
|
|
CFPSCounter.cpp
|
|
${IRRDRVROBJ}
|
|
${IRRIMAGEOBJ}
|
|
)
|
|
|
|
if(USE_SDLGL)
|
|
target_sources(IRRVIDEOOBJ PRIVATE
|
|
OpenGL/Driver.cpp
|
|
OpenGL/ExtensionHandler.cpp
|
|
OpenGL/FixedPipelineRenderer.cpp
|
|
OpenGL/MaterialRenderer.cpp
|
|
OpenGL/Renderer2D.cpp
|
|
)
|
|
endif()
|
|
|
|
if(USE_SDLGL3)
|
|
target_sources(IRRVIDEOOBJ PRIVATE
|
|
OpenGL3/Driver.cpp
|
|
)
|
|
endif()
|
|
|
|
if(USE_SDLGLES2)
|
|
target_sources(IRRVIDEOOBJ PRIVATE
|
|
OpenGLES2/Driver.cpp
|
|
)
|
|
elseif(ENABLE_GLES2)
|
|
target_sources(IRRVIDEOOBJ PRIVATE
|
|
COGLES2Driver.cpp
|
|
COGLES2ExtensionHandler.cpp
|
|
COGLES2FixedPipelineRenderer.cpp
|
|
COGLES2MaterialRenderer.cpp
|
|
COGLES2Renderer2D.cpp
|
|
CWebGL1Driver.cpp
|
|
)
|
|
endif()
|
|
|
|
add_library(IRRIOOBJ OBJECT
|
|
CFileList.cpp
|
|
CFileSystem.cpp
|
|
CLimitReadFile.cpp
|
|
CMemoryFile.cpp
|
|
CReadFile.cpp
|
|
CWriteFile.cpp
|
|
CZipReader.cpp
|
|
CAttributes.cpp
|
|
)
|
|
|
|
add_library(IRROTHEROBJ OBJECT
|
|
CIrrDeviceSDL.cpp
|
|
CIrrDeviceLinux.cpp
|
|
CIrrDeviceStub.cpp
|
|
CIrrDeviceWin32.cpp
|
|
CLogger.cpp
|
|
COSOperator.cpp
|
|
Irrlicht.cpp
|
|
os.cpp
|
|
)
|
|
|
|
if(ENABLE_OPENGL3)
|
|
target_compile_definitions(IRROTHEROBJ PRIVATE ENABLE_OPENGL3)
|
|
endif()
|
|
|
|
if(ANDROID)
|
|
target_sources(IRROTHEROBJ PRIVATE
|
|
Android/CIrrDeviceAndroid.cpp
|
|
Android/CAndroidAssetReader.cpp
|
|
Android/CAndroidAssetFileArchive.cpp
|
|
Android/CKeyEventWrapper.cpp
|
|
)
|
|
elseif(APPLE)
|
|
# Build all IRROTHEROBJ sources as objc++, including the .cpp's
|
|
set_target_properties(IRROTHEROBJ PROPERTIES COMPILE_OPTIONS "-xobjective-c++")
|
|
target_sources(IRROTHEROBJ PRIVATE
|
|
CIrrDeviceOSX.mm
|
|
CNSOGLManager.mm
|
|
)
|
|
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
|
|
CGUIEditBox.cpp
|
|
CGUIEnvironment.cpp
|
|
CGUIFileOpenDialog.cpp
|
|
CGUIFont.cpp
|
|
CGUIImage.cpp
|
|
CGUIListBox.cpp
|
|
CGUIScrollBar.cpp
|
|
CGUISkin.cpp
|
|
CGUIStaticText.cpp
|
|
CGUITabControl.cpp
|
|
CGUISpriteBank.cpp
|
|
CGUIImageList.cpp
|
|
)
|
|
|
|
# Library
|
|
|
|
add_library(IrrlichtMt)
|
|
foreach(object_lib
|
|
IRRMESHOBJ IRROBJ IRRVIDEOOBJ
|
|
IRRIOOBJ IRROTHEROBJ IRRGUIOBJ)
|
|
# Set include directories for object library compilation
|
|
target_include_directories(${object_lib} PRIVATE ${link_includes})
|
|
# Add objects from object library to main library
|
|
target_sources(IrrlichtMt PRIVATE $<TARGET_OBJECTS:${object_lib}>)
|
|
endforeach()
|
|
|
|
# Alias target provides add_submodule compatibility
|
|
add_library(IrrlichtMt::IrrlichtMt ALIAS IrrlichtMt)
|
|
|
|
target_include_directories(IrrlichtMt
|
|
PUBLIC
|
|
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include/>"
|
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
|
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/irrlichtmt>"
|
|
PRIVATE
|
|
${link_includes}
|
|
)
|
|
|
|
# this needs to be here and not in a variable (like link_includes) due to issues
|
|
# with the generator expressions on at least CMake 3.22, but not 3.28 or later
|
|
target_link_libraries(IrrlichtMt PRIVATE
|
|
${ZLIB_LIBRARY}
|
|
${JPEG_LIBRARY}
|
|
${PNG_LIBRARY}
|
|
"$<$<BOOL:${USE_SDL2}>:${SDL2_LIBRARIES}>"
|
|
|
|
"$<$<BOOL:${OPENGL_DIRECT_LINK}>:${OPENGL_LIBRARIES}>"
|
|
"$<$<BOOL:${OPENGLES_DIRECT_LINK}>:${OPENGLES_LIBRARY}>"
|
|
"$<$<BOOL:${OPENGLES2_DIRECT_LINK}>:${OPENGLES2_LIBRARIES}>"
|
|
${EGL_LIBRARY}
|
|
|
|
"$<$<PLATFORM_ID:Android>:-landroid -llog>"
|
|
${COCOA_LIB}
|
|
${IOKIT_LIB}
|
|
"$<$<PLATFORM_ID:Windows>:gdi32>"
|
|
"$<$<PLATFORM_ID:Windows>:winmm>"
|
|
"$<$<BOOL:${USE_X11}>:${X11_X11_LIB}>"
|
|
"$<$<BOOL:${USE_X11}>:${X11_Xi_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}
|
|
)
|
|
|
|
if(WIN32)
|
|
set_target_properties(IrrlichtMt PROPERTIES PREFIX "") # for DLL name
|
|
endif()
|
|
|
|
# Installation of library
|
|
install(TARGETS IrrlichtMt
|
|
EXPORT IrrlichtMt-export
|
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
|
)
|