CMake: workaround for Xxf86vm when building on X11 platforms
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@10974 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
6e148e2aaf
commit
9c1d373c4b
@ -40,10 +40,6 @@ include_directories(${STK_SOURCE_DIR})
|
||||
find_package(Irrlicht 1.8 REQUIRED)
|
||||
include_directories(${IRRLICHT_INCLUDE_DIRS})
|
||||
|
||||
# OpenGL
|
||||
find_package(OpenGL REQUIRED)
|
||||
include_directories(${OPENGL_INCLUDE_DIR})
|
||||
|
||||
# OpenAL
|
||||
if(MSVC)
|
||||
find_library(OPENAL_LIBRARY OpenAL32 REQUIRED PATHS "${PROJECT_SOURCE_DIR}/dependencies/lib")
|
||||
@ -144,10 +140,9 @@ else()
|
||||
|
||||
# Build the final executable
|
||||
add_executable(supertuxkart ${STK_SOURCES} ${STK_HEADERS})
|
||||
if(CYGWIN)
|
||||
target_link_libraries(supertuxkart pthread)
|
||||
elseif(UNIX)
|
||||
target_link_libraries(supertuxkart pthread Xxf86vm)
|
||||
|
||||
if(UNIX OR CYGWIN)
|
||||
target_link_libraries(supertuxkart pthread)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -30,7 +30,9 @@ endif()
|
||||
|
||||
# Find include directory and library
|
||||
find_path(IRRLICHT_INCLUDE_DIR NAMES irrlicht.h
|
||||
PATHS ${IRRLICHT_DIR} /Library/Frameworks/IrrFramework.framework/Versions/A/Headers/ ${PROJECT_SOURCE_DIR}/dependencies/include/irrlicht
|
||||
PATHS ${IRRLICHT_DIR}
|
||||
/Library/Frameworks/IrrFramework.framework/Versions/A/Headers/
|
||||
${PROJECT_SOURCE_DIR}/dependencies/include/irrlicht
|
||||
PATH_SUFFIXES include irrlicht)
|
||||
|
||||
if(APPLE)
|
||||
@ -58,7 +60,37 @@ find_package_handle_standard_args(Irrlicht
|
||||
REQUIRED_VARS IRRLICHT_LIBRARY IRRLICHT_INCLUDE_DIR
|
||||
VERSION_VAR IRRLICHT_VERSION)
|
||||
|
||||
# STK uses Irrlicht/OpenGL on all platforms
|
||||
find_package(OpenGL REQUIRED)
|
||||
|
||||
# Publish variables
|
||||
set(IRRLICHT_INCLUDE_DIRS ${IRRLICHT_INCLUDE_DIR})
|
||||
set(IRRLICHT_LIBRARIES ${IRRLICHT_LIBRARY})
|
||||
set(IRRLICHT_INCLUDE_DIRS ${IRRLICHT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
|
||||
set(IRRLICHT_LIBRARIES ${IRRLICHT_LIBRARY} ${OPENGL_LIBRARIES})
|
||||
mark_as_advanced(IRRLICHT_INCLUDE_DIR IRRLICHT_LIBRARY)
|
||||
|
||||
# Check if Xxf86vm is required when building for platforms using X11
|
||||
if(UNIX AND NOT APPLE AND NOT CYGWIN)
|
||||
find_library(IRRLICHT_XF86VM_LIBRARY Xxf86vm)
|
||||
mark_as_advanced(IRRLICHT_XF86VM_LIBRARY)
|
||||
|
||||
set(IRRLICHT_SNIPPET "#include <irrlicht.h>
|
||||
int main() { irr::createDevice(irr::video::EDT_NULL)\; return 0\; }")
|
||||
|
||||
include(CheckCXXSourceCompiles)
|
||||
set(CMAKE_REQUIRED_INCLUDES ${IRRLICHT_INCLUDE_DIR})
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${IRRLICHT_LIBRARIES})
|
||||
check_cxx_source_compiles(${IRRLICHT_SNIPPET} IRRLICHT_WITHOUT_XF86VM)
|
||||
|
||||
# If it does not work without Xxf86vm library...
|
||||
if(NOT IRRLICHT_WITHOUT_XF86VM)
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${IRRLICHT_LIBRARIES} ${IRRLICHT_XF86VM_LIBRARY})
|
||||
check_cxx_source_compiles(${IRRLICHT_SNIPPET} IRRLICHT_WITH_XF86VM)
|
||||
|
||||
# ... but with Xxf86vm, then add this library to Irrlicht dependencies
|
||||
if(IRRLICHT_WITH_XF86VM)
|
||||
set(IRRLICHT_LIBRARIES ${IRRLICHT_LIBRARIES} ${IRRLICHT_XF86VM_LIBRARY})
|
||||
else()
|
||||
message(WARNING "Irrlicht does not compile with and without Xxf86vm")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user