# Build the Irrlicht shared library # source files FILE(GLOB Irrlicht_SOURCES *.cpp) # header files FILE(GLOB Irrlicht_HEADERS *.h lzma/*.c) # exported header files FILE(GLOB Irrlicht_PUBLIC_HEADERS ${OpenNERO_SOURCE_DIR}/external/include/irrlicht/*.h ) SET(EXTRA_LIBS) # Irrlicht needs libz FIND_PACKAGE(ZLIB) IF (ZLIB_FOUND) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) LIST(APPEND EXTRA_LIBS ${ZLIB_LIBRARY}) MESSAGE(STATUS "z lib found on system!") ELSE(ZLIB_FOUND) INCLUDE_DIRECTORIES(zlib) ADD_SUBDIRECTORY(zlib) LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/zlib) LIST(APPEND EXTRA_LIBS z) MESSAGE(STATUS "z lib not found on system, using bundled!") ENDIF(ZLIB_FOUND) # Irrlicht needs libpng FIND_PACKAGE(PNG) IF (PNG_FOUND AND NOT APPLE) INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) LIST(APPEND EXTRA_LIBS ${PNG_LIBRARY}) MESSAGE(STATUS "png lib found on system!") ELSE(PNG_FOUND AND NOT APPLE) INCLUDE_DIRECTORIES(libpng) ADD_SUBDIRECTORY(libpng) LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/libpng) LIST(APPEND EXTRA_LIBS png) MESSAGE(STATUS "png lib not found on system, using bundled!") ENDIF(PNG_FOUND AND NOT APPLE) # Irrlicht needs libjpeg FIND_PACKAGE(JPEG) IF (JPEG_FOUND AND NOT APPLE) INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) LIST(APPEND EXTRA_LIBS ${JPEG_LIBRARY}) MESSAGE(STATUS "jpeg lib found on system!") ELSE(JPEG_FOUND AND NOT APPLE) INCLUDE_DIRECTORIES(jpeglib) ADD_SUBDIRECTORY(jpeglib) LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/jpeglib) LIST(APPEND EXTRA_LIBS jpeg) MESSAGE(STATUS "jpeg lib not found on system, using bundled!") ENDIF(JPEG_FOUND AND NOT APPLE) # Irrlicht needs bzip2 FIND_PACKAGE(BZip2) IF (BZIP2_FOUND) INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR}) LIST(APPEND EXTRA_LIBS ${BZIP2_LIBRARIES}) MESSAGE(STATUS "bzip2 lib found on system!") ELSE(BZIP2_FOUND) INCLUDE_DIRECTORIES(bzip2) ADD_SUBDIRECTORY(bzip2) LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/bzip2) LIST(APPEND EXTRA_LIBS bz2) MESSAGE(STATUS "bzip2 lib not found on system, using bundled!") ENDIF(BZIP2_FOUND) # Irrlicht needs lzma INCLUDE_DIRECTORIES(lzma) # settings for the Irrlicht compile configuration file SET(_IRR_COMPILE_WITH_SOFTWARE_ 1) SET(_IRR_COMPILE_WITH_BURNINGSVIDEO_ 1) IF(UNIX) SET(_IRR_COMPILE_WITH_X11_ 1) ENDIF(UNIX) # how to compile with Z-lib SET(_IRR_COMPILE_WITH_ZLIB_ 1) IF (NOT ZLIB_FOUND) SET(_IRR_USE_NON_SYSTEM_ZLIB_ 1) ENDIF (NOT ZLIB_FOUND) # how to compile with libjpeg SET(_IRR_COMPILE_WITH_LIBJPEG_ 1) IF (NOT JPEG_FOUND) SET(_IRR_USE_NON_SYSTEM_LIBJPEG_ 1) ENDIF (NOT JPEG_FOUND) # how to compile with lib SET(_IRR_COMPILE_WITH_LIBPNG_ 1) IF (NOT PNG_FOUND) SET(_IRR_USE_NON_SYSTEM_LIBPNG_ 1) ENDIF (NOT PNG_FOUND) # create the Irrlicht compile configuration file CONFIGURE_FILE(${OpenNERO_SOURCE_DIR}/external/include/irrlicht/IrrCompileConfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/IrrCompileConfig.h) # Irrlicht include files are in another directory INCLUDE_DIRECTORIES( ${OpenNERO_SOURCE_DIR}/external/include/irrlicht ${CMAKE_CURRENT_BINARY_DIR}) # Irrlicht needs aes INCLUDE_DIRECTORIES(aesGladman) ADD_SUBDIRECTORY(aesGladman) LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/aesGladman) LIST(APPEND EXTRA_LIBS aes) IF (WIN32) ADD_DEFINITIONS(-DWIN32 -D_WINDOWS -D_USRDLL -DIRRLICHT_EXPORTS -D_CRT_SECURE_NO_WARNINGS) ENDIF (WIN32) IF (WIN32) ELSE (WIN32) IF (APPLE) LIST (APPEND Irrlicht_SOURCES MacOSX/CIrrDeviceMacOSX.mm MacOSX/AppDelegate.mm MacOSX/OSXClipboard.mm ) INCLUDE_DIRECTORIES ( MacOSX .) FIND_LIBRARY(COCOA_LIBRARY Cocoa) FIND_LIBRARY(CARBON_LIBRARY Carbon) FIND_LIBRARY(OPENGL_LIBRARY OpenGL) FIND_LIBRARY(APP_SERVICES_LIBRARY ApplicationServices ) MARK_AS_ADVANCED (COCOA_LIBRARY) MARK_AS_ADVANCED (CARBON_LIBRARY) MARK_AS_ADVANCED (OPENGL_LIBRARY) MARK_AS_ADVANCED (APP_SERVICES_LIBRARY) LIST(APPEND EXTRA_LIBS ${COCOA_LIBRARY} ${CARBON_LIBRARY} ${APP_SERVICES_LIBRARY} ${OPENGL_LIBRARY}) ELSE (APPLE) FIND_LIBRARY(GL_LIBRARY GL REQUIRED) LIST(APPEND EXTRA_LIBS ${GL_LIBRARY}) ENDIF (APPLE) ENDIF (WIN32) ADD_LIBRARY (Irrlicht SHARED ${Irrlicht_SOURCES} ${Irrlicht_HEADERS} ${Irrlicht_PUBLIC_HEADERS} ) TARGET_LINK_LIBRARIES( Irrlicht ${EXTRA_LIBS} ) IF (APPLE) ADD_DEFINITIONS("-x objective-c++") TARGET_LINK_LIBRARIES(Irrlicht ${OPENGL_LIBRARIES}) SET_TARGET_PROPERTIES(Irrlicht PROPERTIES COMPILE_FLAGS "-include MacOSX/MacOSX_Prefix.pch") ENDIF (APPLE) INSTALL(TARGETS Irrlicht LIBRARY DESTINATION "." RUNTIME DESTINATION "." ARCHIVE DESTINATION ".")