cmake-ify for Linux. Remove use of printf.

This commit is contained in:
Chris Collins
2015-06-24 19:01:35 +10:00
committed by Chris Collins
parent ed59e03a9a
commit 5e236443ac
3 changed files with 93 additions and 3 deletions

44
CMakeLists.txt Normal file
View 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})

View 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()

View File

@@ -31,7 +31,8 @@
#include <map>
#include <vector>
#include <math.h>
#include <cmath>
#include <cstdio>
#include "XPLMGraphics.h"
#include "XPLMUtilities.h"
@@ -345,8 +346,12 @@ int OBJ_LoadModel(const char * inFilePath)
tex_path += sObjects.back().obj.texture;
tex_path += ".png";
sObjects.back().texnum = OBJ_LoadTexture(tex_path.c_str(), false);
if(sObjects.back().texnum == 0)
printf("WARNING: %s failed to load for %s.\n", tex_path.c_str(),inFilePath);
if(sObjects.back().texnum == 0) {
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;
p = tex_path.find_last_of("\\:/");//XPLMGetDirectorySeparator());