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 <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()
+
# 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
+# To configure the features available in this Irrlicht build please edit include/IrrCompileConfig.h.
include(CheckSymbolExists)
set(CMAKE_REQUIRED_INCLUDES ${PROJECT_SOURCE_DIR}/include)
unset(OGLES1_ENABLED CACHE)
unset(OGLES2_ENABLED CACHE)
unset(OGL_ENABLED CACHE)
unset(XINPUT2_ENABLED CACHE)
+unset(SDL_ENABLED CACHE)
+
+# tell cmake about the dependency
+set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${CMAKE_REQUIRED_INCLUDES}/IrrCompileConfig.h)
check_symbol_exists(_IRR_COMPILE_WITH_OGLES1_ "IrrCompileConfig.h" OGLES1_ENABLED)
if(OGLES1_ENABLED)
set(OpenGL_GL_PREFERENCE "LEGACY")
find_package(OpenGL REQUIRED)
endif()
-check_symbol_exists(_IRR_LINUX_X11_XINPUT2_ "IrrCompileConfig.h" XINPUT2_ENABLED)
-if(XINPUT2_ENABLED)
- find_library(XINPUT_LIBRARY Xi REQUIRED)
+if(UNIX AND NOT ANDROID AND NOT APPLE)
+ check_symbol_exists(_IRR_LINUX_X11_XINPUT2_ "IrrCompileConfig.h" XINPUT2_ENABLED)
+endif()
+check_symbol_exists(_IRR_COMPILE_WITH_SDL_DEVICE_ "IrrCompileConfig.h" SDL_ENABLED)
+if(SDL_ENABLED)
+ find_package(SDL2 CONFIG REQUIRED)
+ message(STATUS "Found SDL2: ${SDL2_LIBRARIES}")
endif()
# Platform-specific libs
else()
# Unix probably
find_package(X11 REQUIRED)
+ if(XINPUT2_ENABLED AND NOT X11_Xi_FOUND)
+ message(FATAL_ERROR "XInput not found")
+ endif()
endif()
set(link_includes
"${ZLIB_INCLUDE_DIR}"
"${JPEG_INCLUDE_DIR}"
"${PNG_INCLUDE_DIR}"
+ "${SDL2_INCLUDE_DIRS}"
${OPENGL_INCLUDE_DIR}
${OPENGLES2_INCLUDE_DIR}
"${ZLIB_LIBRARY}"
"${JPEG_LIBRARY}"
"${PNG_LIBRARY}"
+ "${SDL2_LIBRARIES}"
${OPENGL_LIBRARIES}
${OPENGLES_LIBRARY}
${OPENGLES2_LIBRARIES}
${EGL_LIBRARY}
- ${XINPUT_LIBRARY}
"$<$<PLATFORM_ID:Android>:native_app_glue -landroid -llog>"
${COCOA_LIB}
"$<$<PLATFORM_ID:Windows>:gdi32>"
"$<$<PLATFORM_ID:Windows>:winmm>"
${X11_X11_LIB}
- ${X11_Xxf86vm_LIB}
+ ${X11_Xi_LIB}
)
# Source files
CSceneCollisionManager.cpp
CSceneManager.cpp
CMeshCache.cpp
- CDefaultSceneNodeFactory.cpp
)
set(IRRDRVROBJ
CNullDriver.cpp
COpenGLCacheHandler.cpp
COpenGLDriver.cpp
- COpenGLNormalMapRenderer.cpp
- COpenGLParallaxMapRenderer.cpp
COpenGLShaderMaterialRenderer.cpp
COpenGLSLMaterialRenderer.cpp
COpenGLExtensionHandler.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
)
)
add_library(IRRVIDEOOBJ OBJECT
- CVideoModeList.cpp
CFPSCounter.cpp
${IRRDRVROBJ}
${IRRIMAGEOBJ}
CReadFile.cpp
CWriteFile.cpp
CZipReader.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
)
if(ANDROID)
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
set_target_properties(IrrlichtMt PROPERTIES
VERSION ${PROJECT_VERSION}
- SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
)
if(WIN32)