Cameron Hart ee4fa30c73 Fixes for MSVC CMake build.
Look in the right place for SDL libs depending on arch.
Output exe's to RecastDemo/Bin, with output suffix so different
configs don't clash.
2013-09-29 14:38:44 +10:00

107 lines
3.2 KiB
CMake

# 2.8.5 required for CMAKE_LIBRARY_ARCHITECTURE
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
SET(recastdemo_SRCS
Source/ChunkyTriMesh.cpp
Source/ConvexVolumeTool.cpp
Source/CrowdTool.cpp
Source/Filelist.cpp
Source/imgui.cpp
Source/imguiRenderGL.cpp
Source/InputGeom.cpp
Source/main.cpp
Source/MeshLoaderObj.cpp
Source/NavMeshPruneTool.cpp
Source/NavMeshTesterTool.cpp
Source/OffMeshConnectionTool.cpp
Source/PerfTimer.cpp
Source/Sample.cpp
Source/Sample_Debug.cpp
Source/Sample_SoloMesh.cpp
Source/Sample_TileMesh.cpp
Source/Sample_TempObstacles.cpp
Source/SampleInterfaces.cpp
Source/SlideShow.cpp
Source/TestCase.cpp
Source/ValueHistory.cpp
Contrib/fastlz/fastlz.c
)
SET(recastdemo_HDRS
Include/ChunkyTriMesh.h
Include/ConvexVolumeTool.h
Include/CrowdTool.h
Include/Filelist.h
Include/imgui.h
Include/imguiRenderGL.h
Include/InputGeom.h
Include/MeshLoaderObj.h
Include/NavMeshPruneTool.h
Include/NavMeshTesterTool.h
Include/OffMeshConnectionTool.h
Include/PerfTimer.h
Include/Sample.h
Include/Sample_Debug.h
Include/Sample_SoloMesh.h
Include/Sample_TileMesh.h
Include/Sample_TempObstacles.h
Include/SampleInterfaces.h
Include/SDLMain.h
Include/SlideShow.h
Include/TestCase.h
Include/ValueHistory.h
)
IF(MSVC)
# Look in the Contrib directory for SDL when building with MSVC
SET(CMAKE_PREFIX_PATH Contrib/SDL)
# Look in arch dependendent lib subfolder for libsdl
IF(CMAKE_GENERATOR MATCHES Win64)
SET(CMAKE_LIBRARY_ARCHITECTURE x64)
ELSE()
SET(CMAKE_LIBRARY_ARCHITECTURE x86)
ENDIF()
ENDIF()
FIND_PACKAGE(OpenGL REQUIRED)
FIND_PACKAGE(SDL REQUIRED)
INCLUDE_DIRECTORIES(Include
Contrib
Contrib/fastlz
../DebugUtils/Include
../Detour/Include
../DetourCrowd/Include
../DetourTileCache/Include
../Recast/Include
${SDL_INCLUDE_DIR}
)
IF(XCODE)
ADD_EXECUTABLE(RecastDemo MACOSX_BUNDLE Source/SDLMain.m Include/SDLMain.h ${recastdemo_SRCS} ${recastdemo_HDRS})
ELSE()
ADD_EXECUTABLE(RecastDemo WIN32 ${recastdemo_SRCS} ${recastdemo_HDRS})
ENDIF()
TARGET_LINK_LIBRARIES(RecastDemo DebugUtils Detour DetourCrowd DetourTileCache Recast ${SDL_LIBRARY} ${OPENGL_LIBRARIES})
IF(MSVC)
# Enable some linker optimisations
SET(recastdemo_LINK_OPTS "/OPT:REF /OPT:ICF")
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES LINK_FLAGS_RELEASE ${recastdemo_LINK_OPTS})
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES LINK_FLAGS_MINSIZEREL ${recastdemo_LINK_OPTS})
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES LINK_FLAGS_RELWITHDEBINFO ${recastdemo_LINK_OPTS})
ENDIF()
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES DEBUG_POSTFIX "_Debug")
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES MINSIZEREL_POSTFIX "_MinSizeRel")
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES RELWITHDEBINFO_POSTFIX "_RelWithDebInfo")
SET(recastdemo_OUTPUT_DIR "${RecastNavigation_SOURCE_DIR}/RecastDemo/Bin")
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${recastdemo_OUTPUT_DIR})
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${recastdemo_OUTPUT_DIR})
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${recastdemo_OUTPUT_DIR})
SET_TARGET_PROPERTIES(RecastDemo PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${recastdemo_OUTPUT_DIR})