From 0c572e763622613b60b0f68478faccc8437a2745 Mon Sep 17 00:00:00 2001 From: Cameron Hart Date: Wed, 13 Jul 2011 20:49:40 +1200 Subject: [PATCH] Compiles and links against CMake built debug and release dependencies on Windows. --- Bindings/Contents/CMakeLists.txt | 8 ++- CMake/ExternalAssimp.cmake | 4 +- CMake/ExternalBox2D.cmake | 4 +- CMake/ExternalBullet.cmake | 16 ++--- CMake/ExternalFreetype.cmake | 6 +- CMake/ExternalOggVorbis.cmake | 24 +++---- CMake/ExternalOpenAL.cmake | 16 ++--- CMake/ExternalPNG.cmake | 16 ++--- CMake/ExternalPhysFS.cmake | 14 ++-- CMake/FindBox2D.cmake | 15 +++- CMake/FindOgg.cmake | 84 +++++++++++++++++++++++ CMake/FindVorbis.cmake | 84 +++++++++++++++++++++++ CMake/PolycodeIncludes.cmake | 6 +- CMake/freetype.cmake | 2 +- CMakeLists.txt | 2 +- Core/Contents/CMakeLists.txt | 19 +++-- Modules/Contents/2DPhysics/CMakeLists.txt | 8 ++- Modules/Contents/3DPhysics/CMakeLists.txt | 18 ++--- Player/Contents/CMakeLists.txt | 2 + Tools/Contents/polyimport/CMakeLists.txt | 6 +- 20 files changed, 270 insertions(+), 84 deletions(-) create mode 100644 CMake/FindOgg.cmake create mode 100644 CMake/FindVorbis.cmake diff --git a/Bindings/Contents/CMakeLists.txt b/Bindings/Contents/CMakeLists.txt index d1c7bbcf0..1c2dfb081 100644 --- a/Bindings/Contents/CMakeLists.txt +++ b/Bindings/Contents/CMakeLists.txt @@ -17,6 +17,8 @@ SET(polycodeLua_HDRS LUA/Include/PolycodeLUA2D.h ) +SET(CMAKE_DEBUG_POSTFIX "_d") + IF(POLYCODE_BUILD_SHARED) ADD_LIBRARY(PolycodeLua SHARED ${polycodeLua_SRCS} ${polycodeLua_HDRS}) TARGET_LINK_LIBRARIES(PolycodeLua PolyCore ${LUA_LIBRARY}) @@ -30,14 +32,14 @@ ENDIF(POLYCODE_BUILD_STATIC) IF(POLYCODE_INSTALL_FRAMEWORK) # install headers - INSTALL(FILES ${polycodeLua_HDRS} DESTINATION Framework/Modules/Include) + INSTALL(FILES ${polycodeLua_HDRS} DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Include) # install libraries IF(POLYCODE_BUILD_SHARED) - INSTALL(TARGETS PolycodeLua DESTINATION Framework/Modules/Lib/${CMAKE_BUILD_TYPE}) + INSTALL(TARGETS PolycodeLua DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Lib) ENDIF(POLYCODE_BUILD_SHARED) IF(POLYCODE_BUILD_STATIC) - INSTALL(TARGETS PolycodeLua_static DESTINATION Framework/Modules/Lib/${CMAKE_BUILD_TYPE}) + INSTALL(TARGETS PolycodeLua_static DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Lib) ENDIF(POLYCODE_BUILD_STATIC) ENDIF(POLYCODE_INSTALL_FRAMEWORK) diff --git a/CMake/ExternalAssimp.cmake b/CMake/ExternalAssimp.cmake index d0eaa933b..c02260789 100644 --- a/CMake/ExternalAssimp.cmake +++ b/CMake/ExternalAssimp.cmake @@ -23,11 +23,11 @@ INSTALL(DIRECTORY ${install_dir}/include/ # install debug lib INSTALL(FILES ${install_dir}/lib/assimp${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_TOOLS_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_TOOLS_PREFIX}/Lib CONFIGURATIONS Debug RENAME assimpd${CMAKE_STATIC_LIBRARY_SUFFIX}) # install release lib INSTALL(FILES ${install_dir}/lib/assimp${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_TOOLS_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_TOOLS_PREFIX}/Lib CONFIGURATIONS Release) diff --git a/CMake/ExternalBox2D.cmake b/CMake/ExternalBox2D.cmake index 6cb374b6d..06d4167b2 100644 --- a/CMake/ExternalBox2D.cmake +++ b/CMake/ExternalBox2D.cmake @@ -36,12 +36,12 @@ INSTALL(DIRECTORY ${install_dir}/include/ # install debug lib INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}Box2D${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Debug RENAME Box2D_d${CMAKE_STATIC_LIBRARY_SUFFIX}) # install release lib INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}Box2D${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Release) diff --git a/CMake/ExternalBullet.cmake b/CMake/ExternalBullet.cmake index 4967e3cbb..7a6a3a10e 100644 --- a/CMake/ExternalBullet.cmake +++ b/CMake/ExternalBullet.cmake @@ -35,38 +35,38 @@ INSTALL(DIRECTORY ${install_dir}/include/ # install debug libs INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}BulletDynamics${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Debug RENAME BulletDynamics_d${CMAKE_STATIC_LIBRARY_SUFFIX}) INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}BulletCollision${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Debug RENAME BulletCollision_d${CMAKE_STATIC_LIBRARY_SUFFIX}) INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}BulletSoftBody${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Debug RENAME BulletSoftBody_d${CMAKE_STATIC_LIBRARY_SUFFIX}) INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}LinearMath${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Debug RENAME LinearMath_d${CMAKE_STATIC_LIBRARY_SUFFIX}) # install release libs INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}BulletDynamics${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}BulletCollision${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}BulletSoftBody${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}LinearMath${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_MODULES_PREFIX}/Lib CONFIGURATIONS Release) diff --git a/CMake/ExternalFreetype.cmake b/CMake/ExternalFreetype.cmake index 13c439035..13793af8e 100644 --- a/CMake/ExternalFreetype.cmake +++ b/CMake/ExternalFreetype.cmake @@ -23,11 +23,11 @@ INSTALL(DIRECTORY ${install_dir}/include/ FILES_MATCHING PATTERN "*.h") # install debug libs -INSTALL(FILES ${install_dir}/lib/freetyped${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Debug +INSTALL(FILES ${install_dir}/lib/freetype_d${CMAKE_STATIC_LIBRARY_SUFFIX} + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Debug) # install release lib INSTALL(FILES ${install_dir}/lib/freetype${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Release) diff --git a/CMake/ExternalOggVorbis.cmake b/CMake/ExternalOggVorbis.cmake index d76bc65fa..6d98a9c05 100644 --- a/CMake/ExternalOggVorbis.cmake +++ b/CMake/ExternalOggVorbis.cmake @@ -39,52 +39,52 @@ INSTALL(DIRECTORY ${install_dir}/include/ # install debug libs INSTALL(FILES ${install_dir}/lib/liboggd${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Debug) INSTALL(FILES ${install_dir}/lib/libvorbisd${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Debug) INSTALL(FILES ${install_dir}/lib/libvorbisfiled${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Debug) # install release lib INSTALL(FILES ${install_dir}/lib/libogg${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/lib/libvorbis${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/lib/libvorbisfile${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Release) # install debug shared library INSTALL(FILES ${install_dir}/bin/liboggd${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Debug) INSTALL(FILES ${install_dir}/bin/libvorbisd${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Debug) INSTALL(FILES ${install_dir}/bin/libvorbisfiled${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Debug) # install release shared library INSTALL(FILES ${install_dir}/bin/libogg${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/bin/libvorbis${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/bin/libvorbisfile${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Release) diff --git a/CMake/ExternalOpenAL.cmake b/CMake/ExternalOpenAL.cmake index 238867951..bbde749cb 100644 --- a/CMake/ExternalOpenAL.cmake +++ b/CMake/ExternalOpenAL.cmake @@ -21,23 +21,23 @@ INSTALL(DIRECTORY ${install_dir}/include/ FILES_MATCHING PATTERN "*.h") # install debug lib -INSTALL(FILES ${install_dir}/lib/OpenAL32${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Debug +INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}OpenAL32${CMAKE_STATIC_LIBRARY_SUFFIX} + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Debug RENAME OpenAL32d${CMAKE_STATIC_LIBRARY_SUFFIX}) # install release lib -INSTALL(FILES ${install_dir}/lib/OpenAL32${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Release +INSTALL(FILES ${install_dir}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}OpenAL32${CMAKE_STATIC_LIBRARY_SUFFIX} + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Release) # install debug shared library -INSTALL(FILES ${install_dir}/bin/OpenAL32${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Debug +INSTALL(FILES ${install_dir}/bin/${CMAKE_SHARED_LIBRARY_PREFIX}OpenAL32${CMAKE_SHARED_LIBRARY_SUFFIX} + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Debug RENAME OpenAL32d${CMAKE_SHARED_LIBRARY_SUFFIX}) # install release shared library -INSTALL(FILES ${install_dir}/bin/OpenAL32${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Release +INSTALL(FILES ${install_dir}/bin/${CMAKE_SHARED_LIBRARY_PREFIX}OpenAL32${CMAKE_SHARED_LIBRARY_SUFFIX} + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Release) diff --git a/CMake/ExternalPNG.cmake b/CMake/ExternalPNG.cmake index 47551840d..4d1de634a 100644 --- a/CMake/ExternalPNG.cmake +++ b/CMake/ExternalPNG.cmake @@ -37,36 +37,36 @@ INSTALL(DIRECTORY ${install_dir}/include/ # install debug libs INSTALL(FILES ${install_dir}/lib/zlibd${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Debug) INSTALL(FILES ${install_dir}/lib/libpng15d${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Debug) # install release lib INSTALL(FILES ${install_dir}/lib/zlib${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/lib/libpng15${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Release) # install debug shared library INSTALL(FILES ${install_dir}/bin/zlibd1${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Debug) INSTALL(FILES ${install_dir}/bin/libpng15d${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Debug) # install release shared library INSTALL(FILES ${install_dir}/bin/zlib1${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Release) INSTALL(FILES ${install_dir}/bin/libpng15${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Release) diff --git a/CMake/ExternalPhysFS.cmake b/CMake/ExternalPhysFS.cmake index ec7725e8c..1b0177234 100644 --- a/CMake/ExternalPhysFS.cmake +++ b/CMake/ExternalPhysFS.cmake @@ -23,32 +23,26 @@ INSTALL(DIRECTORY ${install_dir}/include/ # install debug lib INSTALL(FILES ${install_dir}/lib/physfs${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Debug RENAME physfsd${CMAKE_STATIC_LIBRARY_SUFFIX}) # install release lib INSTALL(FILES ${install_dir}/lib/physfs${CMAKE_STATIC_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Lib CONFIGURATIONS Release) # install debug shared library INSTALL(FILES ${install_dir}/bin/physfs${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Debug + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Debug RENAME physfsd${CMAKE_SHARED_LIBRARY_SUFFIX}) # install release shared library INSTALL(FILES ${install_dir}/bin/physfs${CMAKE_SHARED_LIBRARY_SUFFIX} - DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin/Release + DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}/Bin CONFIGURATIONS Release) -#INSTALL(DIRECTORY ${install_dir}/bin -# DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}) -#INSTALL(DIRECTORY ${install_dir}/lib -# DESTINATION ${POLYCODE_DEPS_CORE_PREFIX}) - - diff --git a/CMake/FindBox2D.cmake b/CMake/FindBox2D.cmake index bf7b738f6..c97ed9839 100644 --- a/CMake/FindBox2D.cmake +++ b/CMake/FindBox2D.cmake @@ -15,9 +15,18 @@ FIND_PATH(BOX2D_INCLUDE_DIR Box2D/Box2D.h PATH_SUFFIXES include ) -SET(BOX2D_NAMES box2d Box2d BOX2D Box2D) -FIND_LIBRARY(BOX2D_LIBRARY NAMES ${BOX2D_NAMES}) -MARK_AS_ADVANCED(BOX2D_LIBRARY BOX2D_INCLUDE_DIR) +FIND_LIBRARY(BOX2D_RELEASE_LIBRARY NAMES box2d Box2d BOX2D Box2D) +FIND_LIBRARY(BOX2D_DEBUG_LIBRARY NAMES box2d_d Box2d_d BOX2D_d Box2D_d) + +IF(BOX2D_RELEASE_LIBRARY) + IF(BOX2D_DEBUG_LIBRARY) + SET(BOX2D_LIBRARY optimized "${BOX2D_RELEASE_LIBRARY}" debug "${BOX2D_DEBUG_LIBRARY}") + ELSE() + SET(BOX2D_LIBRARY "${BOX2D_RELEASE_LIBRARY}") # Could add "general" keyword, but it is optional + ENDIF() +ENDIF() + +MARK_AS_ADVANCED(BOX2D_LIBRARY BOX2D_RELEASE_LIBRARY BOX2D_DEBUG_LIBRARY BOX2D_INCLUDE_DIR) # Per-recommendation SET(BOX2D_INCLUDE_DIRS "${BOX2D_INCLUDE_DIR}") diff --git a/CMake/FindOgg.cmake b/CMake/FindOgg.cmake new file mode 100644 index 000000000..110861671 --- /dev/null +++ b/CMake/FindOgg.cmake @@ -0,0 +1,84 @@ +# Copied from http://code.google.com/p/osgaudio/source/browse/trunk/CMakeModules/FindOGG.cmake +# Locate OGG +# This module defines XXX_FOUND, XXX_INCLUDE_DIRS and XXX_LIBRARIES standard variables +# +# $OGGDIR is an environment variable that would +# correspond to the ./configure --prefix=$OGGDIR +# used in building OGG. + +SET(OGG_SEARCH_PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt +) + +SET(MSVC_YEAR_NAME) +IF (MSVC_VERSION GREATER 1599) # >= 1600 + SET(MSVC_YEAR_NAME VS2010) +ELSEIF(MSVC_VERSION GREATER 1499) # >= 1500 + SET(MSVC_YEAR_NAME VS2008) +ELSEIF(MSVC_VERSION GREATER 1399) # >= 1400 + SET(MSVC_YEAR_NAME VS2005) +ELSEIF(MSVC_VERSION GREATER 1299) # >= 1300 + SET(MSVC_YEAR_NAME VS2003) +ELSEIF(MSVC_VERSION GREATER 1199) # >= 1200 + SET(MSVC_YEAR_NAME VS6) +ENDIF() + +FIND_PATH(OGG_INCLUDE_DIR + NAMES ogg/ogg.h ogg/os_types.h + HINTS + $ENV{OGGDIR} + $ENV{OGG_PATH} + PATH_SUFFIXES include + PATHS ${OGG_SEARCH_PATHS} +) + +FIND_LIBRARY(OGG_LIBRARY + NAMES ogg libogg + HINTS + $ENV{OGGDIR} + $ENV{OGG_PATH} + PATH_SUFFIXES lib lib64 win32/Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release" + PATHS ${OGG_SEARCH_PATHS} +) + +# First search for d-suffixed libs +FIND_LIBRARY(OGG_LIBRARY_DEBUG + NAMES oggd ogg_d liboggd libogg_d + HINTS + $ENV{OGGDIR} + $ENV{OGG_PATH} + PATH_SUFFIXES lib lib64 win32/Dynamic_Debug "Win32/${MSVC_YEAR_NAME}/x64/Debug" "Win32/${MSVC_YEAR_NAME}/Win32/Debug" + PATHS ${OGG_SEARCH_PATHS} +) + +IF(NOT OGG_LIBRARY_DEBUG) + # Then search for non suffixed libs if necessary, but only in debug dirs + FIND_LIBRARY(OGG_LIBRARY_DEBUG + NAMES ogg libogg + HINTS + $ENV{OGGDIR} + $ENV{OGG_PATH} + PATH_SUFFIXES win32/Dynamic_Debug "Win32/${MSVC_YEAR_NAME}/x64/Debug" "Win32/${MSVC_YEAR_NAME}/Win32/Debug" + PATHS ${OGG_SEARCH_PATHS} + ) +ENDIF() + + +IF(OGG_LIBRARY) + IF(OGG_LIBRARY_DEBUG) + SET(OGG_LIBRARIES optimized "${OGG_LIBRARY}" debug "${OGG_LIBRARY_DEBUG}") + ELSE() + SET(OGG_LIBRARIES "${OGG_LIBRARY}") # Could add "general" keyword, but it is optional + ENDIF() +ENDIF() + +# handle the QUIETLY and REQUIRED arguments and set XXX_FOUND to TRUE if all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OGG DEFAULT_MSG OGG_LIBRARIES OGG_INCLUDE_DIR) diff --git a/CMake/FindVorbis.cmake b/CMake/FindVorbis.cmake new file mode 100644 index 000000000..db92ac093 --- /dev/null +++ b/CMake/FindVorbis.cmake @@ -0,0 +1,84 @@ +# Copied from http://code.google.com/p/osgaudio/source/browse/trunk/CMakeModules/FindVorbis.cmake +# Locate Vorbis +# This module defines XXX_FOUND, XXX_INCLUDE_DIRS and XXX_LIBRARIES standard variables +# +# $VORBISDIR is an environment variable that would +# correspond to the ./configure --prefix=$VORBISDIR +# used in building Vorbis. + +SET(VORBIS_SEARCH_PATHS + ~/Library/Frameworks + /Library/Frameworks + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt +) + +SET(MSVC_YEAR_NAME) +IF (MSVC_VERSION GREATER 1599) # >= 1600 + SET(MSVC_YEAR_NAME VS2010) +ELSEIF(MSVC_VERSION GREATER 1499) # >= 1500 + SET(MSVC_YEAR_NAME VS2008) +ELSEIF(MSVC_VERSION GREATER 1399) # >= 1400 + SET(MSVC_YEAR_NAME VS2005) +ELSEIF(MSVC_VERSION GREATER 1299) # >= 1300 + SET(MSVC_YEAR_NAME VS2003) +ELSEIF(MSVC_VERSION GREATER 1199) # >= 1200 + SET(MSVC_YEAR_NAME VS6) +ENDIF() + +FIND_PATH(VORBIS_INCLUDE_DIR + NAMES vorbis/codec.h + HINTS + $ENV{VORBISDIR} + $ENV{VORBIS_PATH} + PATH_SUFFIXES include + PATHS ${VORBIS_SEARCH_PATHS} +) + +FIND_LIBRARY(VORBIS_LIBRARY + NAMES vorbis libvorbis + HINTS + $ENV{VORBISDIR} + $ENV{VORBIS_PATH} + PATH_SUFFIXES lib lib64 win32/Vorbis_Dynamic_Release "Win32/${MSVC_YEAR_NAME}/x64/Release" "Win32/${MSVC_YEAR_NAME}/Win32/Release" + PATHS ${VORBIS_SEARCH_PATHS} +) + +# First search for d-suffixed libs +FIND_LIBRARY(VORBIS_LIBRARY_DEBUG + NAMES vorbisd vorbis_d libvorbisd libvorbis_d + HINTS + $ENV{VORBISDIR} + $ENV{VORBIS_PATH} + PATH_SUFFIXES lib lib64 win32/Vorbis_Dynamic_Debug "Win32/${MSVC_YEAR_NAME}/x64/Debug" "Win32/${MSVC_YEAR_NAME}/Win32/Debug" + PATHS ${VORBIS_SEARCH_PATHS} +) + +IF(NOT VORBIS_LIBRARY_DEBUG) + # Then search for non suffixed libs if necessary, but only in debug dirs + FIND_LIBRARY(VORBIS_LIBRARY_DEBUG + NAMES vorbis libvorbis + HINTS + $ENV{VORBISDIR} + $ENV{VORBIS_PATH} + PATH_SUFFIXES win32/Vorbis_Dynamic_Debug "Win32/${MSVC_YEAR_NAME}/x64/Debug" "Win32/${MSVC_YEAR_NAME}/Win32/Debug" + PATHS ${VORBIS_SEARCH_PATHS} + ) +ENDIF() + + +IF(VORBIS_LIBRARY) + IF(VORBIS_LIBRARY_DEBUG) + SET(VORBIS_LIBRARIES optimized "${VORBIS_LIBRARY}" debug "${VORBIS_LIBRARY_DEBUG}") + ELSE() + SET(VORBIS_LIBRARIES "${VORBIS_LIBRARY}") # Could add "general" keyword, but it is optional + ENDIF() +ENDIF() + +# handle the QUIETLY and REQUIRED arguments and set XXX_FOUND to TRUE if all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(VORBIS DEFAULT_MSG VORBIS_LIBRARIES VORBIS_INCLUDE_DIR) diff --git a/CMake/PolycodeIncludes.cmake b/CMake/PolycodeIncludes.cmake index d16d104ab..fd9e155e8 100644 --- a/CMake/PolycodeIncludes.cmake +++ b/CMake/PolycodeIncludes.cmake @@ -1,17 +1,17 @@ # platform specific defines and include directories for win and sdl IF(MSVC) ADD_DEFINITIONS(/D_UNICODE /DUNICODE) - INCLUDE_DIRECTORIES(${PolyCode_SOURCE_DIR}/Core/Build/MSVC/Polycore) + INCLUDE_DIRECTORIES(${Polycode_SOURCE_DIR}/Core/Build/MSVC/Polycore) ELSEIF(APPLE) ADD_DEFINITIONS(-DGL_GLEXT_PROTOTYPES) ELSE(MSVC) ADD_DEFINITIONS(-DGL_GLEXT_PROTOTYPES) - INCLUDE_DIRECTORIES(${PolyCode_SOURCE_DIR}/Core/Build/Linux) + INCLUDE_DIRECTORIES(${Polycode_SOURCE_DIR}/Core/Build/Linux) ENDIF(MSVC) # Set up common include directories INCLUDE_DIRECTORIES( - ${PolyCode_SOURCE_DIR}/Core/Contents/Include + ${Polycode_SOURCE_DIR}/Core/Contents/Include ${OPENGL_INCLUDE_DIR} ${OPENAL_INCLUDE_DIR} ${FREETYPE_INCLUDE_DIR} diff --git a/CMake/freetype.cmake b/CMake/freetype.cmake index bfe9e60a1..d615c61aa 100644 --- a/CMake/freetype.cmake +++ b/CMake/freetype.cmake @@ -9,7 +9,7 @@ IF(NOT CMAKE_BUILD_TYPE) ENDIF(NOT CMAKE_BUILD_TYPE) # to distinguish between debug and release lib -SET(CMAKE_DEBUG_POSTFIX "d") +SET(CMAKE_DEBUG_POSTFIX "_d") SET(freetype_SRCS src/autofit/autofit.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 85bef8cc1..3dfa5ee8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,7 @@ IF(POLYCODE_BUILD_PLAYER) ENDIF(POLYCODE_BUILD_PLAYER) IF(POLYCODE_BUILD_TOOLS) - ADD_SUBDIRECTORY(Tools) + ADD_SUBDIRECTORY(Tools/Contents) ENDIF(POLYCODE_BUILD_TOOLS) # Install assets and dependencies diff --git a/Core/Contents/CMakeLists.txt b/Core/Contents/CMakeLists.txt index a0e2b64f7..3de5982a5 100644 --- a/Core/Contents/CMakeLists.txt +++ b/Core/Contents/CMakeLists.txt @@ -3,6 +3,8 @@ FIND_PACKAGE(PNG REQUIRED) FIND_PACKAGE(PhysFS REQUIRED) FIND_PACKAGE(OpenAL REQUIRED) FIND_PACKAGE(Freetype REQUIRED) +FIND_PACKAGE(Ogg REQUIRED) +FIND_PACKAGE(Vorbis REQUIRED) FIND_PACKAGE(VorbisFile REQUIRED) # Use SDL on non-Apple unixes @@ -192,6 +194,8 @@ SET(polycore_HDRS Include/tinyxml.h ) +SET(CMAKE_DEBUG_POSTFIX "_d") + # TODO: iPhone # Include/PolyiPhoneCore.h # Include/Poly_iPhone.h @@ -216,16 +220,17 @@ ELSE(MSVC) ENDIF(MSVC) IF(POLYCODE_BUILD_SHARED) - LINK_LIBRARIES( + ADD_LIBRARY(PolyCore SHARED ${polycore_SRCS} ${polycore_HDRS}) + TARGET_LINK_LIBRARIES(PolyCore ${OPENGL_LIBRARIES} ${OPENAL_LIBRARY} ${PNG_LIBRARIES} ${FREETYPE_LIBRARIES} ${PHYSFS_LIBRARY} - ${VORBISFILE_LIBRARY} - ${SDL_LIBRARY} - ) - ADD_LIBRARY(PolyCore SHARED ${polycore_SRCS} ${polycore_HDRS}) + ${OGG_LIBRARIES} + ${VORBIS_LIBRARIES} + ${VORBISFILE_LIBRARIES} + ${SDL_LIBRARY}) ENDIF(POLYCODE_BUILD_SHARED) IF(POLYCODE_BUILD_STATIC) @@ -238,10 +243,10 @@ IF(POLYCODE_INSTALL_FRAMEWORK) # install libraries IF(POLYCODE_BUILD_SHARED) - INSTALL(TARGETS PolyCore EXPORT PolyCore-targets DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Core/Lib/${CMAKE_BUILD_TYPE}) + INSTALL(TARGETS PolyCore EXPORT PolyCore-targets DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Core/Lib) ENDIF(POLYCODE_BUILD_SHARED) IF(POLYCODE_BUILD_STATIC) - INSTALL(TARGETS PolyCore_static EXPORT PolyCore-targets DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Core/Lib/${CMAKE_BUILD_TYPE}) + INSTALL(TARGETS PolyCore_static EXPORT PolyCore-targets DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Core/Lib) ENDIF(POLYCODE_BUILD_STATIC) ENDIF(POLYCODE_INSTALL_FRAMEWORK) diff --git a/Modules/Contents/2DPhysics/CMakeLists.txt b/Modules/Contents/2DPhysics/CMakeLists.txt index 3b727d15c..343bf2e91 100644 --- a/Modules/Contents/2DPhysics/CMakeLists.txt +++ b/Modules/Contents/2DPhysics/CMakeLists.txt @@ -16,6 +16,8 @@ INCLUDE_DIRECTORIES( Include ) +SET(CMAKE_DEBUG_POSTFIX "_d") + IF(POLYCODE_BUILD_SHARED) LINK_LIBRARIES(${BOX2D_LIBRARIES}) ADD_LIBRARY(Polycode2DPhysics SHARED ${polycode2DPhysics_SRCS} ${polycode2DPhysics_HDRS}) @@ -30,14 +32,14 @@ ENDIF(POLYCODE_BUILD_STATIC) IF(POLYCODE_INSTALL_FRAMEWORK) # install headers - INSTALL(FILES ${polycode2DPhysics_HDRS} DESTINATION Framework/Modules/Include) + INSTALL(FILES ${polycode2DPhysics_HDRS} DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Include) # install libraries IF(POLYCODE_BUILD_SHARED) - INSTALL(TARGETS Polycode2DPhysics DESTINATION Framework/Modules/Lib/${CMAKE_BUILD_TYPE}) + INSTALL(TARGETS Polycode2DPhysics DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Lib) ENDIF(POLYCODE_BUILD_SHARED) IF(POLYCODE_BUILD_STATIC) - INSTALL(TARGETS Polycode2DPhysics_static DESTINATION Framework/Modules/Lib/${CMAKE_BUILD_TYPE}) + INSTALL(TARGETS Polycode2DPhysics_static DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Lib) ENDIF(POLYCODE_BUILD_STATIC) ENDIF(POLYCODE_INSTALL_FRAMEWORK) diff --git a/Modules/Contents/3DPhysics/CMakeLists.txt b/Modules/Contents/3DPhysics/CMakeLists.txt index c20b4830d..4eee6f7df 100644 --- a/Modules/Contents/3DPhysics/CMakeLists.txt +++ b/Modules/Contents/3DPhysics/CMakeLists.txt @@ -20,26 +20,28 @@ INCLUDE_DIRECTORIES( Include ) +SET(CMAKE_DEBUG_POSTFIX "_d") + IF(POLYCODE_BUILD_SHARED) - LINK_LIBRARIES(${BULLET_LIBRARIES}) - ADD_LIBRARY(Polycode3DPhysics SHARED ${polycode3DPhysics_SRCS} ${polycode3DPhysics_HDRS}) - TARGET_LINK_LIBRARIES(Polycode3DPhysics PolyCore) + LINK_LIBRARIES(${BULLET_LIBRARIES}) + ADD_LIBRARY(Polycode3DPhysics SHARED ${polycode3DPhysics_SRCS} ${polycode3DPhysics_HDRS}) + TARGET_LINK_LIBRARIES(Polycode3DPhysics PolyCore) ENDIF(POLYCODE_BUILD_SHARED) IF(POLYCODE_BUILD_STATIC) - ADD_LIBRARY(Polycode3DPhysics_static ${polycode3DPhysics_SRCS} ${polycode3DPhysics_HDRS}) - TARGET_LINK_LIBRARIES(Polycode3DPhysics_static PolyCore_static) + ADD_LIBRARY(Polycode3DPhysics_static ${polycode3DPhysics_SRCS} ${polycode3DPhysics_HDRS}) + TARGET_LINK_LIBRARIES(Polycode3DPhysics_static PolyCore_static) ENDIF(POLYCODE_BUILD_STATIC) IF(POLYCODE_INSTALL_FRAMEWORK) # install headers - INSTALL(FILES ${polycode3DPhysics_HDRS} DESTINATION Framework/Modules/Include) + INSTALL(FILES ${polycode3DPhysics_HDRS} DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Include) # install libraries IF(POLYCODE_BUILD_SHARED) - INSTALL(TARGETS Polycode3DPhysics DESTINATION Framework/Modules/Lib/${CMAKE_BUILD_TYPE}) + INSTALL(TARGETS Polycode3DPhysics DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Lib) ENDIF() IF(POLYCODE_BUILD_STATIC) - INSTALL(TARGETS Polycode3DPhysics_static DESTINATION Framework/Modules/Lib/${CMAKE_BUILD_TYPE}) + INSTALL(TARGETS Polycode3DPhysics_static DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Modules/Lib) ENDIF() ENDIF(POLYCODE_INSTALL_FRAMEWORK) diff --git a/Player/Contents/CMakeLists.txt b/Player/Contents/CMakeLists.txt index 9fd68167d..eeee9dad7 100644 --- a/Player/Contents/CMakeLists.txt +++ b/Player/Contents/CMakeLists.txt @@ -5,6 +5,8 @@ INCLUDE_DIRECTORIES( ${Polycode_SOURCE_DIR}/Bindings/Contents/LUA/Include ) +SET(CMAKE_DEBUG_POSTFIX "_d") + IF(MSVC) SET(polycodeplayer_SRCS ../Build/MSVC/PolycodePlayer/main.cpp diff --git a/Tools/Contents/polyimport/CMakeLists.txt b/Tools/Contents/polyimport/CMakeLists.txt index 7f17aeae9..a8cd8848a 100644 --- a/Tools/Contents/polyimport/CMakeLists.txt +++ b/Tools/Contents/polyimport/CMakeLists.txt @@ -6,6 +6,8 @@ INCLUDE_DIRECTORIES( ${ASSIMP_INCLUDE_DIR} Include) +SET(CMAKE_DEBUG_POSTFIX "_d") + IF(POLYCODE_BUILD_SHARED) ADD_EXECUTABLE(polyimport Source/polyimport.cpp Include/polyimport.h) TARGET_LINK_LIBRARIES(polyimport PolyCore ${ASSIMP_LIBRARY_RELEASE}) @@ -20,11 +22,11 @@ IF(POLYCODE_INSTALL_FRAMEWORK) # install exes IF(POLYCODE_BUILD_SHARED) - INSTALL(TARGETS polyimport DESTINATION Framework/Tools) + INSTALL(TARGETS polyimport DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Tools) ENDIF(POLYCODE_BUILD_SHARED) IF(POLYCODE_BUILD_STATIC) - INSTALL(TARGETS polyimport_static DESTINATION Framework/Tools) + INSTALL(TARGETS polyimport_static DESTINATION ${POLYCODE_RELEASE_DIR}/Framework/Tools) ENDIF(POLYCODE_BUILD_STATIC) ENDIF(POLYCODE_INSTALL_FRAMEWORK)