mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-21 04:45:31 +08:00
cmake-ify for Linux. Remove use of printf.
This commit is contained in:
committed by
Chris Collins
parent
ed59e03a9a
commit
5e236443ac
44
CMakeLists.txt
Normal file
44
CMakeLists.txt
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
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)
|
||||||
|
#set(XPMP_PLATFORM_SOURCES
|
||||||
|
# src/PlatformUtils.lin.cpp)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
add_definitions(-DIBM=1)
|
||||||
|
#set(XPMP_PLATFORM_SOURCES
|
||||||
|
# src/PlatformUtils.win.cpp)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
|
add_definitions(-DAPL=1)
|
||||||
|
#set(XPMP_PLATFORM_SOURCES
|
||||||
|
# src/PlatformUtils.mac.cpp)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_definitions(-DXPLM200=1 -DXPLM210=1)
|
||||||
|
|
||||||
|
add_library(xplanemp
|
||||||
|
${XPMP_PLATFORM_SOURCES}
|
||||||
|
src/BitmapUtils.cpp
|
||||||
|
src/TexUtils.cpp
|
||||||
|
src/XObjDefs.cpp
|
||||||
|
src/XObjReadWrite.cpp
|
||||||
|
src/XOGLUtils.cpp
|
||||||
|
src/XPCAircraft.cpp
|
||||||
|
src/XPMPMultiplayer.cpp
|
||||||
|
src/XPMPMultiplayerCSL.cpp
|
||||||
|
src/XPMPMultiplayerObj8.cpp
|
||||||
|
src/XPMPMultiplayerObj.cpp
|
||||||
|
src/XPMPMultiplayerVars.cpp
|
||||||
|
src/XPMPPlaneRenderer.cpp
|
||||||
|
src/XUtils.cpp)
|
||||||
|
target_include_directories(xplanemp
|
||||||
|
PUBLIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
${XPSDK_XPLM_INCLUDE_DIRS}
|
||||||
|
PRIVATE
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||||
|
target_link_libraries(xplanemp
|
||||||
|
PUBLIC ${XPSDK_XPLM_LIBRARIES})
|
||||||
41
cmake/Modules/FindXPSDK.cmake
Normal file
41
cmake/Modules/FindXPSDK.cmake
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
find_path(XPSDK_DIR
|
||||||
|
NAMES
|
||||||
|
CHeaders/XPLM/XPLMDefs.h
|
||||||
|
CHeaders/Wrappers/XPCDisplay.h)
|
||||||
|
if(XPSDK_DIR)
|
||||||
|
set(XPSDK_FOUND)
|
||||||
|
if(CMAKE_SIZE_OF_VOID_P EQUAL 8)
|
||||||
|
set(WSIZE "_64")
|
||||||
|
endif()
|
||||||
|
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
set(XPSDK_ARCH "Lin")
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
set(XPSDK_ARCH "Win")
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
|
set(XPSDK_ARCH "Mac")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(XPSDK_INCLUDE_DIRS ${XPSDK_DIR}/CHeaders)
|
||||||
|
set(XPSDK_LIBRARY_DIRS ${XPSDK_DIR}/Libraries/${XPARCH})
|
||||||
|
|
||||||
|
# linux doesn't have linking stubs for XPLM/XPWidgets!
|
||||||
|
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
set(XPSDK_XPLM_LIBRARIES ${XPSDK_LIBRARY_DIRS}/XPLM${WSIZE}.lib)
|
||||||
|
set(XPSDK_XPWIDGETS_LIBRARIES ${XPSDK_LIBRARY_DIRS}/XPWidgets${WSIZE}.lib)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
|
set(XPSDK_XPLM_LIBRARIES ${XPSDK_LIBRARY_DIRS}/XPLM.framework)
|
||||||
|
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")
|
||||||
|
if(XPSDK_FIND_REQUIRED)
|
||||||
|
message(SEND_ERROR "Couldn't find Required XPlane Plugin SDK")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
@@ -31,7 +31,8 @@
|
|||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <math.h>
|
#include <cmath>
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
#include "XPLMGraphics.h"
|
#include "XPLMGraphics.h"
|
||||||
#include "XPLMUtilities.h"
|
#include "XPLMUtilities.h"
|
||||||
@@ -345,8 +346,12 @@ int OBJ_LoadModel(const char * inFilePath)
|
|||||||
tex_path += sObjects.back().obj.texture;
|
tex_path += sObjects.back().obj.texture;
|
||||||
tex_path += ".png";
|
tex_path += ".png";
|
||||||
sObjects.back().texnum = OBJ_LoadTexture(tex_path.c_str(), false);
|
sObjects.back().texnum = OBJ_LoadTexture(tex_path.c_str(), false);
|
||||||
if(sObjects.back().texnum == 0)
|
if(sObjects.back().texnum == 0) {
|
||||||
printf("WARNING: %s failed to load for %s.\n", tex_path.c_str(),inFilePath);
|
char debug[500];
|
||||||
|
snprintf(debug, 500, "WARNING: %s failed to load for %s.\n", tex_path.c_str(),inFilePath);
|
||||||
|
debug[499] = '\0';
|
||||||
|
XPLMDebugString(debug);
|
||||||
|
}
|
||||||
|
|
||||||
tex_path = path;
|
tex_path = path;
|
||||||
p = tex_path.find_last_of("\\:/");//XPLMGetDirectorySeparator());
|
p = tex_path.find_last_of("\\:/");//XPLMGetDirectorySeparator());
|
||||||
|
|||||||
Reference in New Issue
Block a user