macro(cocos2dx_depend) # confim the libs, prepare to link set(PLATFORM_SPECIFIC_LIBS) if(WINDOWS) list(APPEND PLATFORM_SPECIFIC_LIBS ws2_32 userenv psapi winmm Version Iphlpapi opengl32) elseif(LINUX) # need review those libs: X11 Xi Xrandr Xxf86vm Xinerama Xcursor rt m list(APPEND PLATFORM_SPECIFIC_LIBS dl X11 Xi Xrandr Xxf86vm Xinerama Xcursor rt m) # use older cmake style on below linux libs # cocos_find_package(Fontconfig FONTCONFIG REQUIRED) # cocos_find_package(GTK3 GTK3 REQUIRED) # cocos_find_package(ZLIB ZLIB REQUIRED) # cocos_find_package(PNG PNG REQUIRED) # cocos_find_package(GLEW GLEW REQUIRED) # cocos_find_package(OpenGL OPENGL REQUIRED) # cocos_find_package(CURL CURL REQUIRED) # cocos_find_package(SQLite3 SQLITE3 REQUIRED) set(CMAKE_THREAD_PREFER_PTHREAD TRUE) find_package(Threads REQUIRED) set(THREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) elseif(ANDROID) list(APPEND PLATFORM_SPECIFIC_LIBS GLESv2 EGL log android OpenSLES) elseif(APPLE) include_directories(/System/Library/Frameworks) find_library(ICONV_LIBRARY iconv) find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox) find_library(FOUNDATION_LIBRARY Foundation) find_library(OPENAL_LIBRARY OpenAL) find_library(QUARTZCORE_LIBRARY QuartzCore) find_library(GAMECONTROLLER_LIBRARY GameController) set(COCOS_APPLE_LIBS ${OPENAL_LIBRARY} ${AUDIOTOOLBOX_LIBRARY} ${QUARTZCORE_LIBRARY} ${FOUNDATION_LIBRARY} ${ICONV_LIBRARY} ${GAMECONTROLLER_LIBRARY} ) if(BUILD_JS_LIBS) find_library(SQLITE3_LIBRARY SQLite3) list(APPEND COCOS_APPLE_LIBS ${SQLITE3_LIBRARY}) endif() if(MACOSX) find_library(COCOA_LIBRARY Cocoa) find_library(OPENGL_LIBRARY OpenGL) find_library(APPLICATIONSERVICES_LIBRARY ApplicationServices) find_library(IOKIT_LIBRARY IOKit) find_library(APPKIT_LIBRARY AppKit) list(APPEND PLATFORM_SPECIFIC_LIBS ${COCOA_LIBRARY} ${OPENGL_LIBRARY} ${APPLICATIONSERVICES_LIBRARY} ${IOKIT_LIBRARY} ${COCOS_APPLE_LIBS} ${APPKIT_LIBRARY} ) elseif(IOS) # Locate system libraries on iOS find_library(UIKIT_LIBRARY UIKit) find_library(OPENGLES_LIBRARY OpenGLES) find_library(CORE_MOTION_LIBRARY CoreMotion) find_library(MEDIA_PLAYER_LIBRARY MediaPlayer) find_library(CORE_TEXT_LIBRARY CoreText) find_library(SECURITY_LIBRARY Security) find_library(CORE_GRAPHICS_LIBRARY CoreGraphics) find_library(AV_FOUNDATION_LIBRARY AVFoundation) find_library(Z_LIBRARY z) list(APPEND PLATFORM_SPECIFIC_LIBS ${UIKIT_LIBRARY} ${OPENGLES_LIBRARY} ${CORE_MOTION_LIBRARY} ${MEDIA_PLAYER_LIBRARY} ${CORE_TEXT_LIBRARY} ${SECURITY_LIBRARY} ${CORE_GRAPHICS_LIBRARY} ${AV_FOUNDATION_LIBRARY} ${Z_LIBRARY} ${COCOS_APPLE_LIBS} ) endif() endif() endmacro() macro(use_cocos2dx_libs_depend target) cocos2dx_depend() foreach(platform_lib ${PLATFORM_SPECIFIC_LIBS}) target_link_libraries(${target} PUBLIC ${platform_lib}) endforeach() if(LINUX) find_package(Fontconfig REQUIRED) # since CMake 3.14 target_link_libraries(${target} PUBLIC Fontconfig::Fontconfig) find_package(PkgConfig REQUIRED) pkg_check_modules(GTK3 REQUIRED gtk+-3.0) target_include_directories(${target} PUBLIC ${GTK3_INCLUDE_DIRS}) target_link_directories(${target} PUBLIC ${GTK3_LIBRARY_DIRS}) list(REMOVE_ITEM GTK3_LIBRARIES tiff tiffd freetype freetyped bz2 bz2d png16 png16d) find_package(TIFF REQUIRED) find_package(Freetype REQUIRED) find_package(BZip2 REQUIRED) find_package(PNG REQUIRED) list(APPEND GTK3_LIBRARIES TIFF::TIFF Freetype::Freetype BZip2::BZip2 PNG::PNG) target_link_libraries(${target} PUBLIC ${GTK3_LIBRARIES}) find_package(GLEW REQUIRED) target_link_libraries(${target} PUBLIC GLEW::GLEW) find_package(OpenGL REQUIRED) target_link_libraries(${target} PUBLIC OpenGL::GL) find_package(unofficial-sqlite3 CONFIG REQUIRED) target_link_libraries(${target} PUBLIC unofficial::sqlite3::sqlite3) # cocos_use_pkg(${target} FONTCONFIG) # cocos_use_pkg(${target} GTK3) # cocos_use_pkg(${target} ZLIB) # cocos_use_pkg(${target} PNG) # cocos_use_pkg(${target} GLEW) # cocos_use_pkg(${target} OPENGL) # cocos_use_pkg(${target} CURL) cocos_use_pkg(${target} THREADS) # cocos_use_pkg(${target} SQLITE3) endif() endmacro()