]> git.lizzy.rs Git - irrlicht.git/blobdiff - source/Irrlicht/CMakeLists.txt
Resolve conflicts with master
[irrlicht.git] / source / Irrlicht / CMakeLists.txt
index a2ca46e4828c835735a5ae99d86f6dc3d3ca64e1..ad11dd45aa46adfc4aace25eee6cabf6cd3b4ce3 100644 (file)
@@ -6,13 +6,16 @@ option(USE_SDL2 "Use the SDL2 backend" FALSE)
 add_definitions(-DIRRLICHT_EXPORTS)
 if(BUILD_SHARED_LIBS)
        if(WIN32)
-               add_definitions("-DIRRLICHT_API=__declspec(dllexport)")
+               set(API_IMPORT "__declspec(dllimport)")
+               set(API_EXPORT "__declspec(dllexport)")
        elseif(CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$")
-               add_definitions("-DIRRLICHT_API=__attribute__ ((visibility(\"default\")))")
+               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()
@@ -74,22 +77,13 @@ add_definitions(
 if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
        set(SOLARIS TRUE)
 endif()
-if(APPLE AND NOT IOS)
-       set(OSX TRUE)
-endif()
 
 # Device
 
 if(WIN32)
        add_definitions(-D_IRR_WINDOWS_ -D_IRR_WINDOWS_API_)
        set(DEVICE "WINDOWS")
-elseif(IOS)
-       add_definitions(-D_IRR_IOS_PLATFORM_ -D_IRR_COMPILE_WITH_IOS_BUILTIN_MAIN_)
-       if(USE_SDL2)
-               message(SEND_ERROR "SDL2 backend is not supported on iOS")
-       endif()
-       set(DEVICE "IOS")
-elseif(OSX)
+elseif(APPLE)
        add_definitions(-D_IRR_OSX_PLATFORM_)
        set(DEVICE "OSX")
 elseif(ANDROID)
@@ -111,38 +105,32 @@ else()
        set(DEVICE "X11")
 endif()
 
+if(LINUX_PLATFORM)
+       add_definitions(-D_IRR_LINUX_PLATFORM_)
+endif()
+
 if(USE_SDL2)
        set(DEVICE "SDL")
 endif()
 
-option(USE_X11 "Use X11" TRUE)
-if(USE_X11)
-       add_definitions(-D_IRR_COMPILE_WITH_X11_)
-endif()
+add_definitions("-D_IRR_COMPILE_WITH_${DEVICE}_DEVICE_")
 
-if(LINUX_PLATFORM)
-       add_definitions(-D_IRR_LINUX_PLATFORM_)
+# X11
+
+if(DEVICE STREQUAL "X11")
+       option(USE_X11 "Use X11" TRUE)
+else()
+       set(USE_X11 FALSE)
 endif()
 
 if(LINUX_PLATFORM AND USE_X11)
-       add_definitions(-D_IRR_COMPILE_WITH_X11_)
-
        option(USE_XINPUT2 "Use XInput2" TRUE)
-       if(USE_XINPUT2)
-               add_definitions(-D_IRR_LINUX_X11_XINPUT2_)
-       endif()
-
        option(USE_XCURSOR "Use XCursor" FALSE)
-       if(USE_XCURSOR)
-               add_definitions(-D_IRR_LINUX_XCURSOR_)
-       endif()
 else()
        set(USE_XINPUT2 FALSE)
        set(USE_XCURSOR FALSE)
 endif()
 
-add_definitions("-D_IRR_COMPILE_WITH_${DEVICE}_DEVICE_")
-
 # Joystick
 
 if(NOT (BSD OR SOLARIS OR EMSCRIPTEN))
@@ -153,26 +141,26 @@ endif()
 
 option(ENABLE_OPENGL3 "Enable OpenGL 3+" FALSE)
 
-if(IOS OR ANDROID OR EMSCRIPTEN)
+if(ANDROID OR EMSCRIPTEN)
        set(ENABLE_OPENGL FALSE)
 else()
        option(ENABLE_OPENGL "Enable OpenGL" TRUE)
 endif()
 
-if(EMSCRIPTEN OR OSX)
+if(EMSCRIPTEN OR APPLE)
        set(ENABLE_GLES1 FALSE)
 else()
-       if(ANDROID OR IOS)
+       if(ANDROID)
                set(DEFAULT_GLES1 TRUE)
        endif()
        option(ENABLE_GLES1 "Enable OpenGL ES" ${DEFAULT_GLES1})
 endif()
 
-if(OSX)
+if(APPLE)
        set(ENABLE_GLES2 FALSE)
        set(ENABLE_WEBGL1 FALSE)
 else()
-       if(ANDROID OR IOS OR EMSCRIPTEN)
+       if(ANDROID OR EMSCRIPTEN)
                set(DEFAULT_GLES2 TRUE)
        endif()
        if(EMSCRIPTEN)
@@ -207,20 +195,19 @@ if(ENABLE_OPENGL3)
 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$")
+       if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$")
                add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_ -D_IRR_OGLES1_USE_EXTPOINTER_)
-       elseif(DEVICE STREQUAL "IOS")
-               add_definitions(-D_IRR_COMPILE_WITH_EAGL_MANAGER_)
        endif()
 endif()
 
 if(ENABLE_GLES2)
        add_definitions(-D_IRR_COMPILE_WITH_OGLES2_)
-       if(DEVICE MATCHES "^WINDOWS|X11|ANDROID$" OR EMSCRIPTEN)
+       if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$" OR EMSCRIPTEN)
                add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_ -D_IRR_OGLES2_USE_EXTPOINTER_)
-       elseif(DEVICE STREQUAL "IOS")
-               add_definitions(-D_IRR_COMPILE_WITH_EAGL_MANAGER_)
        elseif(DEVICE STREQUAL "SDL")
                set(USE_SDLGL ON)
                set(USE_SDLGLES2 ON)
@@ -287,7 +274,7 @@ elseif(APPLE)
 else()
        # Unix probably
        find_package(X11 REQUIRED)
-       if(${USE_XINPUT2} AND NOT X11_Xi_FOUND)
+       if(USE_XINPUT2 AND NOT X11_Xi_FOUND)
                message(FATAL_ERROR "XInput not found")
        endif()
 endif()
@@ -462,6 +449,18 @@ 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
@@ -507,11 +506,9 @@ target_include_directories(IrrlichtMt
 target_link_libraries(IrrlichtMt PRIVATE ${link_libs})
 
 if(WIN32)
-       target_compile_definitions(IrrlichtMt INTERFACE _IRR_WINDOWS_API_)
-endif()
-if(WIN32 AND BUILD_SHARED_LIBS)
-       target_compile_definitions(IrrlichtMt INTERFACE IRRLICHT_API=__declspec(dllimport))
+       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()