]> git.lizzy.rs Git - irrlicht.git/commitdiff
Consolidate import/export attribute definitions
authornumzero <numzer0@yandex.ru>
Mon, 6 Mar 2023 14:32:03 +0000 (17:32 +0300)
committernumzero <numzer0@yandex.ru>
Mon, 6 Mar 2023 14:32:03 +0000 (17:32 +0300)
source/Irrlicht/CMakeLists.txt

index cfd3bbe146b3a088a04e52d6adb873c61e9597c4..4d2ec7ec0bb4236d724011d334471c673c13dd83 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()
@@ -472,11 +475,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()