From 7ae92c47a4a034aa5112a62e0f12b777ddb4b08f Mon Sep 17 00:00:00 2001 From: Chris Collins Date: Wed, 24 Jun 2015 21:23:29 +1000 Subject: [PATCH] CMakeFiles for XSB --- CMakeLists.txt | 15 ++++++++++----- cmake/Modules/FindXPSDK.cmake | 14 +++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 57d784c5f..1df048c82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,11 @@ cmake_minimum_required(VERSION 3.0) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules" ${CMAKE_MODULE_PATH}) - find_package(XPSDK REQUIRED) + if(CMAKE_SYSTEM_NAME MATCHES "Linux") add_definitions(-DLIN=1) + find_package(PNG) #set(XPMP_PLATFORM_SOURCES # src/PlatformUtils.lin.cpp) elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") @@ -16,6 +17,9 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") #set(XPMP_PLATFORM_SOURCES # src/PlatformUtils.mac.cpp) endif() +if(PNG_FOUND) + add_definitions(-DBITMAP_USE_PNG=1) +endif() add_definitions(-DXPLM200=1 -DXPLM210=1) @@ -36,9 +40,10 @@ add_library(xplanemp src/XUtils.cpp) target_include_directories(xplanemp PUBLIC + ${XPSDK_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/include - ${XPSDK_XPLM_INCLUDE_DIRS} - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/src) + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${PNG_INCLUDE_DIRS}) target_link_libraries(xplanemp - PUBLIC ${XPSDK_XPLM_LIBRARIES}) + PUBLIC ${XPSDK_XPLM_LIBRARIES} ${PNG_LIBRARIES}) +set_target_properties(xplanemp PROPERTIES POSITION_INDEPENDENT_CODE ON) diff --git a/cmake/Modules/FindXPSDK.cmake b/cmake/Modules/FindXPSDK.cmake index 24bb463a2..f48a0f231 100644 --- a/cmake/Modules/FindXPSDK.cmake +++ b/cmake/Modules/FindXPSDK.cmake @@ -3,20 +3,24 @@ find_path(XPSDK_DIR CHeaders/XPLM/XPLMDefs.h CHeaders/Wrappers/XPCDisplay.h) if(XPSDK_DIR) - set(XPSDK_FOUND) + set(XPSDK_FOUND TRUE) if(CMAKE_SIZE_OF_VOID_P EQUAL 8) set(WSIZE "_64") endif() if(CMAKE_SYSTEM_NAME MATCHES "Linux") set(XPSDK_ARCH "Lin") + set(XPSDK_DEFINITIONS "-DLIN=1") elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") set(XPSDK_ARCH "Win") + set(XPSDK_DEFINITIONS "-DIBM=1") elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") set(XPSDK_ARCH "Mac") + set(XPSDK_DEFINITIONS "-DAPL=1") endif() - set(XPSDK_INCLUDE_DIRS ${XPSDK_DIR}/CHeaders) - set(XPSDK_LIBRARY_DIRS ${XPSDK_DIR}/Libraries/${XPARCH}) + set(XPSDK_INCLUDE_DIRS ${XPSDK_DIR}/CHeaders/XPLM ${XPSDK_DIR}/CHeaders/Widgets ${XPSDK_DIR}/CHeaders/Wrappers) + set(XPSDK_LIBRARY_DIRS ${XPSDK_DIR}/Libraries/${XPSDK_ARCH}) + file(GLOB XPSDK_WRAPPERS_SOURCES ${XPSDK_DIR}/CHeaders/Wrappers/*.cpp) # linux doesn't have linking stubs for XPLM/XPWidgets! if(CMAKE_SYSTEM_NAME MATCHES "Windows") @@ -27,10 +31,6 @@ if(XPSDK_DIR) set(XPSDK_XPWIDGETS_LIBRARIES ${XPSDK_LIBRARY_DIRS}/XPWidgets.framework) endif() - set(XPSDK_XPLM_INCLUDE_DIRS ${XPSDK_DIR}/CHeaders/XPLM) - set(XPSDK_XPWIDGETS_INCLUDE_DIRS ${XPSDK_DIR}/CHeaders/Widgets) - set(XPSDK_WRAPPERS_INCLUDE_DIRS ${XPSDK_DIR}/CHeaders/Wrappers) - file(GLOB XPSDK_WRAPPERS_SOURCES ${XPSDK_DIR}/CHeaders/Wrappers/*.cpp) else() set(XPSDK_FOUND) set(XPSDK_NOT_FOUND_MESSAGE "Could not find the XPlane Plugin SDK - please set XPSDK_DIR to the top directory of the SDK")