Browse Source

Created CMakeLists.txt for libogg and libvorbis. Added common download directory.

Cameron Hart 14 years ago
parent
commit
cf6b528be3

+ 4 - 0
CMake/ExternalAssimp.cmake

@@ -5,8 +5,12 @@ SET(assimp_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/assimp)
 
 
 ExternalProject_Add(assimp
 ExternalProject_Add(assimp
     PREFIX ${assimp_PREFIX}
     PREFIX ${assimp_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
+
     URL http://download.sourceforge.net/assimp/assimp--2.0.863-sdk.zip
     URL http://download.sourceforge.net/assimp/assimp--2.0.863-sdk.zip
     URL_MD5 9f41662501bd9d9533c4cf03b7c25d5b
     URL_MD5 9f41662501bd9d9533c4cf03b7c25d5b
+
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DENABLE_BOOST_WORKAROUND=ON -DBUILD_ASSIMP_TOOLS=OFF -DBUILD_TESTS=OFF
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DENABLE_BOOST_WORKAROUND=ON -DBUILD_ASSIMP_TOOLS=OFF -DBUILD_TESTS=OFF
 )
 )
 
 

+ 3 - 1
CMake/ExternalBox2D.cmake

@@ -16,7 +16,9 @@ SET(box2d_CMAKE_ARGS
 
 
 ExternalProject_Add(box2d
 ExternalProject_Add(box2d
     PREFIX ${box2d_PREFIX}
     PREFIX ${box2d_PREFIX}
-    
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
+
     URL http://box2d.googlecode.com/files/Box2D_v2.1.2.zip
     URL http://box2d.googlecode.com/files/Box2D_v2.1.2.zip
     URL_MD5 59d142cd8d4d73e8832c7b67591f590c
     URL_MD5 59d142cd8d4d73e8832c7b67591f590c
 
 

+ 2 - 0
CMake/ExternalBullet.cmake

@@ -18,6 +18,8 @@ ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 ExternalProject_Add(bullet
 ExternalProject_Add(bullet
     PREFIX ${bullet_PREFIX}
     PREFIX ${bullet_PREFIX}
     
     
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
+
     URL http://bullet.googlecode.com/files/bullet-2.78.zip
     URL http://bullet.googlecode.com/files/bullet-2.78.zip
     URL_MD5 99d4070864c9f73521481ba9cda25038
     URL_MD5 99d4070864c9f73521481ba9cda25038
 
 

+ 3 - 0
CMake/ExternalFreetype.cmake

@@ -30,8 +30,11 @@ MESSAGE(DEBUG ${freetype_BUILD})
 
 
 ExternalProject_Add(freetype
 ExternalProject_Add(freetype
     PREFIX ${freetype_PREFIX}
     PREFIX ${freetype_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
     URL http://download.savannah.gnu.org/releases/freetype/freetype-2.4.5.tar.gz
     URL http://download.savannah.gnu.org/releases/freetype/freetype-2.4.5.tar.gz
     URL_MD5 0e67460b312df905dc1cc1586690e7b2
     URL_MD5 0e67460b312df905dc1cc1586690e7b2
+
     CONFIGURE_COMMAND ""
     CONFIGURE_COMMAND ""
     BUILD_IN_SOURCE 1
     BUILD_IN_SOURCE 1
     BUILD_COMMAND ${freetype_BUILD}
     BUILD_COMMAND ${freetype_BUILD}

+ 88 - 0
CMake/ExternalOggVorbis.cmake

@@ -0,0 +1,88 @@
+# Build a local version of libogg, libvorbis and libvorbisfile
+INCLUDE(ExternalProject)
+
+SET(oggvorbis_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/png)
+
+EXTERNALPROJECT_ADD(libogg
+    PREFIX ${oggvorbis_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
+    URL http://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz
+    URL_MD5 5a9fcabc9a1b7c6f1cd75ddc78f36c56
+
+    PATCH_COMMAND ${CMAKE_COMMAND} -E remove <SOURCE_DIR>/zconf.h
+
+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+)
+
+ExternalProject_Get_Property(libogg install_dir)
+
+EXTERNALPROJECT_ADD(libvorbis
+    DEPENDS libogg
+    PREFIX ${oggvorbis_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
+    URL http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.gz
+    URL_MD5 c870b9bd5858a0ecb5275c14486d9554
+
+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${install_dir} # to find libogg
+)
+
+ExternalProject_Get_Property(libvorbis install_dir)
+
+# install built files
+INSTALL(DIRECTORY ${install_dir}/include/
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Include
+    FILES_MATCHING PATTERN "*.h")
+
+# install debug libs
+INSTALL(FILES ${install_dir}/lib/liboggd${CMAKE_STATIC_LIBRARY_SUFFIX} 
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Debug
+    CONFIGURATIONS Debug)
+
+INSTALL(FILES ${install_dir}/lib/libvorbisd${CMAKE_STATIC_LIBRARY_SUFFIX} 
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Debug
+    CONFIGURATIONS Debug)
+
+INSTALL(FILES ${install_dir}/lib/libvorbisfiled${CMAKE_STATIC_LIBRARY_SUFFIX} 
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Debug
+    CONFIGURATIONS Debug)
+
+# install release lib
+INSTALL(FILES ${install_dir}/lib/libogg${CMAKE_STATIC_LIBRARY_SUFFIX}
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Release
+    CONFIGURATIONS Release)
+
+INSTALL(FILES ${install_dir}/lib/libvorbis${CMAKE_STATIC_LIBRARY_SUFFIX}
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Release
+    CONFIGURATIONS Release)
+
+INSTALL(FILES ${install_dir}/lib/libvorbisfile${CMAKE_STATIC_LIBRARY_SUFFIX}
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Release
+    CONFIGURATIONS Release)
+
+# install debug shared library
+INSTALL(FILES ${install_dir}/bin/liboggd${CMAKE_SHARED_LIBRARY_SUFFIX}
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Debug
+    CONFIGURATIONS Debug)
+
+INSTALL(FILES ${install_dir}/bin/libvorbisd${CMAKE_SHARED_LIBRARY_SUFFIX}
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Debug
+    CONFIGURATIONS Debug)
+
+INSTALL(FILES ${install_dir}/bin/libvorbisfiled${CMAKE_SHARED_LIBRARY_SUFFIX}
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Lib/Debug
+    CONFIGURATIONS Debug)
+
+# install release shared library
+INSTALL(FILES ${install_dir}/bin/libogg${CMAKE_SHARED_LIBRARY_SUFFIX} 
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Bin/Release
+    CONFIGURATIONS Release)
+
+INSTALL(FILES ${install_dir}/bin/libvorbis${CMAKE_SHARED_LIBRARY_SUFFIX} 
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Bin/Release
+    CONFIGURATIONS Release)
+
+INSTALL(FILES ${install_dir}/bin/libvorbisfile${CMAKE_SHARED_LIBRARY_SUFFIX} 
+    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/Bin/Release
+    CONFIGURATIONS Release)

+ 3 - 0
CMake/ExternalOpenAL.cmake

@@ -5,6 +5,9 @@ SET(openal_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/openal)
 
 
 ExternalProject_Add(openal
 ExternalProject_Add(openal
     PREFIX ${openal_PREFIX}
     PREFIX ${openal_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
+
     URL http://kcat.strangesoft.net/openal-releases/openal-soft-1.13.tar.bz2
     URL http://kcat.strangesoft.net/openal-releases/openal-soft-1.13.tar.bz2
     URL_MD5 58b7d2809790c70681b825644c5f3614
     URL_MD5 58b7d2809790c70681b825644c5f3614
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>

+ 7 - 0
CMake/ExternalPNG.cmake

@@ -5,9 +5,13 @@ SET(png_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/png)
 
 
 EXTERNALPROJECT_ADD(zlib
 EXTERNALPROJECT_ADD(zlib
     PREFIX ${png_PREFIX}
     PREFIX ${png_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
     URL http://zlib.net/zlib-1.2.5.tar.gz
     URL http://zlib.net/zlib-1.2.5.tar.gz
     URL_MD5 c735eab2d659a96e5a594c9e8541ad63
     URL_MD5 c735eab2d659a96e5a594c9e8541ad63
+
     PATCH_COMMAND ${CMAKE_COMMAND} -E remove <SOURCE_DIR>/zconf.h
     PATCH_COMMAND ${CMAKE_COMMAND} -E remove <SOURCE_DIR>/zconf.h
+
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
 )
 )
 
 
@@ -16,8 +20,11 @@ ExternalProject_Get_Property(zlib install_dir)
 EXTERNALPROJECT_ADD(libpng
 EXTERNALPROJECT_ADD(libpng
     DEPENDS zlib
     DEPENDS zlib
     PREFIX ${png_PREFIX}
     PREFIX ${png_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
     URL ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.4.tar.gz
     URL ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.4.tar.gz
     URL_MD5 dea4d1fd671160424923e92ff0cdda78
     URL_MD5 dea4d1fd671160424923e92ff0cdda78
+
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${install_dir} # to find zlib
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${install_dir} # to find zlib
 )
 )
 
 

+ 4 - 0
CMake/ExternalPhysFS.cmake

@@ -5,8 +5,12 @@ SET(physfs_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/physfs)
 
 
 ExternalProject_Add(physfs
 ExternalProject_Add(physfs
     PREFIX ${physfs_PREFIX}
     PREFIX ${physfs_PREFIX}
+
+    DOWNLOAD_DIR ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}
+
     URL http://offload1.icculus.org:9090/physfs/downloads/physfs-2.0.2.tar.gz
     URL http://offload1.icculus.org:9090/physfs/downloads/physfs-2.0.2.tar.gz
     URL_MD5 4e8927c3d30279b03e2592106eb9184a
     URL_MD5 4e8927c3d30279b03e2592106eb9184a
+
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
     CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
 )
 )
 
 

+ 0 - 101
CMake/ExternalVorbisFile.cmake

@@ -1,101 +0,0 @@
-# Build a local version of libogg, libvorbis and libvorbisfile
-INCLUDE(ExternalProject)
-
-SET(oggvorbis_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/oggvorbis)
-
-IF(MSVC10)
-    SET(target_dir "win32/VS2010")
-    SET(ogg_TARGET_DIR ${target_dir})
-    SET(vorbis_TARGET_DIR ${target_dir}/libvorbis)
-    SET(vorbisfile_TARGET_DIR ${target_dir}/libvorbisfile)
-    SET(vorbis_CONFIG "Release")
-    SET(ogg_LIB_DIR ${target_dir}/Win32/Release)
-    SET(vorbis_LIB_DIR ${vorbis_TARGET_DIR}/Win32/Release)
-    SET(vorbisfile_LIB_DIR ${vorbisfile_TARGET_DIR}/Win32/Release)
-    # copy libvorbis.lib where the libvorbisfile project will find it - only a problem because build_command won't build the solution
-    SET(vorbis_INSTALL ${CMAKE_COMMAND} -E copy_if_different ${vorbis_LIB_DIR}/libvorbis.lib ${vorbis_TARGET_DIR}/../win32/release/libvorbis.lib)
-ELSE()
-    MESSAGE(ERROR "Generator support not implemented yet.")
-ENDIF(MSVC10)
-
-BUILD_COMMAND(ogg_TEMP TARGET ${ogg_TARGET_DIR}/libogg_dynamic CONFIGURATION ${vorbis_CONFIG})
-BUILD_COMMAND(vorbis_TEMP TARGET ${vorbis_TARGET_DIR}/libvorbis_dynamic CONFIGURATION ${vorbis_CONFIG})
-BUILD_COMMAND(vorbisfile_TEMP TARGET ${vorbisfile_TARGET_DIR}/libvorbisfile_dynamic CONFIGURATION ${vorbis_CONFIG})
-
-# split build command string into list
-STRING(REPLACE " " ";" ogg_BUILD ${ogg_TEMP})
-STRING(REPLACE " " ";" vorbis_BUILD ${vorbis_TEMP})
-STRING(REPLACE " " ";" vorbisfile_BUILD ${vorbisfile_TEMP})
-
-ExternalProject_Add(ogg
-    PREFIX ${oggvorbis_PREFIX}
-    URL http://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz
-    URL_MD5 5a9fcabc9a1b7c6f1cd75ddc78f36c56
-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo "Skipping configure step"
-    BUILD_IN_SOURCE 1
-    BUILD_COMMAND ${ogg_BUILD}
-    INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Skipping install step"
-)
-
-ExternalProject_Add(vorbis
-    DEPENDS ogg
-    PREFIX ${oggvorbis_PREFIX}
-    URL http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.gz
-    URL_MD5 c870b9bd5858a0ecb5275c14486d9554
-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo "Skipping configure step"
-    BUILD_IN_SOURCE 1
-    BUILD_COMMAND ${vorbis_BUILD}
-    INSTALL_COMMAND ${vorbis_INSTALL}
-)
-
-ExternalProject_Get_Property(vorbis source_dir)
-
-ExternalProject_Add(vorbisfile
-    DEPENDS vorbis
-    PREFIX ${oggvorbis_PREFIX}
-    SOURCE_DIR ${source_dir}
-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo "Skipping configure step"
-    BUILD_IN_SOURCE 1
-    BUILD_COMMAND ${vorbisfile_BUILD}
-    INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Skipping install step"
-)
-
-# get the source dir for in source build
-ExternalProject_Get_Property(ogg source_dir)
-
-# install built files
-
-# ogg headers and includes
-INSTALL(DIRECTORY ${source_dir}/include 
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}
-    FILES_MATCHING PATTERN "*.h")
-INSTALL(DIRECTORY ${source_dir}/${ogg_LIB_DIR}/
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin/
-    FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
-INSTALL(DIRECTORY ${source_dir}/${ogg_LIB_DIR}/
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/lib/
-    FILES_MATCHING PATTERN "*${CMAKE_LINK_LIBRARY_SUFFIX}")
-
-ExternalProject_Get_Property(vorbis source_dir)
-
-# vorbis headers
-INSTALL(DIRECTORY ${source_dir}/include 
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}
-    FILES_MATCHING PATTERN "*.h")
-    
-# vorbis libraries
-INSTALL(DIRECTORY ${source_dir}/${vorbis_LIB_DIR}/
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin/
-    FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
-INSTALL(DIRECTORY ${source_dir}/${vorbis_LIB_DIR}/
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/lib/
-    FILES_MATCHING PATTERN "*${CMAKE_LINK_LIBRARY_SUFFIX}")
-
-# vorbisfile libraries
-INSTALL(DIRECTORY ${source_dir}/${vorbisfile_LIB_DIR}/
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/bin/
-    FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
-INSTALL(DIRECTORY ${source_dir}/${vorbisfile_LIB_DIR}/
-    DESTINATION ${POLYCODE_EXTERNALS_CORE_PREFIX}/lib/
-    FILES_MATCHING PATTERN "*${CMAKE_LINK_LIBRARY_SUFFIX}")
-

+ 36 - 0
CMake/libogg.cmake

@@ -0,0 +1,36 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+PROJECT(libogg C)
+
+IF(NOT CMAKE_BUILD_TYPE)
+    #SET(CMAKE_BUILD_TYPE "Debug")
+    SET(CMAKE_BUILD_TYPE "Release")
+    MESSAGE("No CMAKE_BUILD_TYPE specified, defaulting to ${CMAKE_BUILD_TYPE}") 
+ENDIF(NOT CMAKE_BUILD_TYPE)
+
+# to distinguish between debug and release lib
+SET(CMAKE_DEBUG_POSTFIX "d")
+
+SET(libogg_SRCS src/bitwise.c src/framing.c)
+SET(libogg_HDRS include/ogg/ogg.h include/ogg/os_types.h)
+
+INCLUDE_DIRECTORIES(include)
+
+IF(MSVC)
+    ADD_DEFINITIONS(/D_UNICODE /DUNICODE)
+    LIST(APPEND libogg_SRCS win32/ogg.def)
+ENDIF(MSVC)
+
+ADD_LIBRARY(libogg_dynamic SHARED ${libogg_SRCS} ${libogg_HDRS})
+ADD_LIBRARY(libogg_static ${libogg_SRCS} ${libogg_HDRS})
+
+SET_TARGET_PROPERTIES(libogg_dynamic libogg_static 
+    PROPERTIES OUTPUT_NAME libogg)
+
+INSTALL(TARGETS libogg_dynamic libogg_static
+    RUNTIME DESTINATION bin
+    ARCHIVE DESTINATION lib
+    LIBRARY DESTINATION lib)
+
+INSTALL(FILES ${libogg_HDRS} DESTINATION include/ogg)
+

+ 126 - 0
CMake/libvorbis.cmake

@@ -0,0 +1,126 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+PROJECT(libvorbis C)
+
+IF(NOT CMAKE_BUILD_TYPE)
+    #SET(CMAKE_BUILD_TYPE "Debug")
+    SET(CMAKE_BUILD_TYPE "Release")
+    MESSAGE("No CMAKE_BUILD_TYPE specified, defaulting to ${CMAKE_BUILD_TYPE}") 
+ENDIF(NOT CMAKE_BUILD_TYPE)
+
+# to distinguish between debug and release lib
+SET(CMAKE_DEBUG_POSTFIX "d")
+
+FIND_PATH(OGG_INCLUDE_DIR NAMES ogg/ogg.h)
+
+FIND_LIBRARY(OGG_RELEASE_LIBRARY NAMES libogg)
+FIND_LIBRARY(OGG_DEBUG_LIBRARY NAMES liboggd)
+
+IF(OGG_RELEASE_LIBRARY AND OGG_DEBUG_LIBRARY)
+    SET(OGG_LIBRARY debug ${OGG_DEBUG_LIBRARY} optimized ${OGG_RELEASE_LIBRARY})
+ELSE()
+    SET(OGG_LIBRARY ${OGG_RELEASE_LIBRARY})
+ENDIF()
+
+SET(libvorbis_SRCS
+    lib/analysis.c
+    lib/bitrate.c
+    lib/block.c
+    lib/codebook.c
+    lib/envelope.c
+    lib/floor0.c
+    lib/floor1.c
+    lib/info.c
+    lib/lookup.c
+    lib/lpc.c
+    lib/lsp.c
+    lib/mapping0.c
+    lib/mdct.c
+    lib/psy.c
+    lib/registry.c
+    lib/res0.c
+    lib/sharedbook.c
+    lib/smallft.c
+    lib/synthesis.c
+    lib/vorbisenc.c
+    lib/window.c
+)
+
+SET(libvorbis_HDRS 
+    lib/backends.h
+    lib/bitrate.h
+    lib/codebook.h
+    lib/codec_internal.h
+    lib/envelope.h
+    lib/modes/floor_all.h
+    lib/books/floor/floor_books.h
+    lib/highlevel.h
+    lib/lookup.h
+    lib/lookup_data.h
+    lib/lpc.h
+    lib/lsp.h
+    lib/masking.h
+    lib/mdct.h
+    lib/misc.h
+    lib/os.h
+    lib/psy.h
+    lib/modes/psych_11.h
+    lib/modes/psych_16.h
+    lib/modes/psych_44.h
+    lib/modes/psych_8.h
+    lib/registry.h
+    lib/books/coupled/res_books_stereo.h
+    lib/books/uncoupled/res_books_uncoupled.h
+    lib/modes/residue_16.h
+    lib/modes/residue_44.h
+    lib/modes/residue_44u.h
+    lib/modes/residue_8.h
+    lib/scales.h
+    lib/modes/setup_11.h
+    lib/modes/setup_16.h
+    lib/modes/setup_22.h
+    lib/modes/setup_32.h
+    lib/modes/setup_44.h
+    lib/modes/setup_44u.h
+    lib/modes/setup_8.h
+    lib/modes/setup_X.h
+    lib/smallft.h
+    lib/window.h
+)
+
+SET(vorbis_public_HDRS
+    include/vorbis/codec.h
+    include/vorbis/vorbisenc.h
+    include/vorbis/vorbisfile.h)
+
+INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR} include)
+
+IF(MSVC)
+    ADD_DEFINITIONS(/D_UNICODE /DUNICODE)
+    LIST(APPEND libvorbis_SRCS win32/vorbis.def)
+ENDIF(MSVC)
+
+ADD_LIBRARY(libvorbis_dynamic SHARED ${libvorbis_SRCS} ${libvorbis_HDRS} ${vorbis_public_HDRS})
+ADD_LIBRARY(libvorbis_static ${libvorbis_SRCS} ${libvorbis_HDRS} ${vorbis_public_HDRS})
+TARGET_LINK_LIBRARIES(libvorbis_dynamic ${OGG_LIBRARY})
+
+ADD_LIBRARY(libvorbisfile_dynamic SHARED lib/vorbisfile.c include/vorbis/vorbisfile.h)
+ADD_LIBRARY(libvorbisfile_static lib/vorbisfile.c include/vorbis/vorbisfile.h)
+
+TARGET_LINK_LIBRARIES(libvorbisfile_dynamic libvorbis_dynamic ${OGG_LIBRARY})
+
+SET_TARGET_PROPERTIES(libvorbis_dynamic libvorbis_static 
+    PROPERTIES OUTPUT_NAME libvorbis)
+
+SET_TARGET_PROPERTIES(libvorbisfile_dynamic libvorbisfile_static 
+    PROPERTIES OUTPUT_NAME libvorbisfile)
+
+INSTALL(TARGETS 
+    libvorbis_dynamic libvorbis_static 
+    libvorbisfile_dynamic libvorbisfile_static
+    RUNTIME DESTINATION bin
+    ARCHIVE DESTINATION lib
+    LIBRARY DESTINATION lib)
+
+INSTALL(FILES ${vorbis_public_HDRS} DESTINATION include/vorbis)
+

+ 8 - 3
Externals/CMakeLists.txt

@@ -1,6 +1,6 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 
 
-PROJECT(PolycodeExternals)
+PROJECT(PolycodeDependencies)
 
 
 IF(NOT CMAKE_BUILD_TYPE)
 IF(NOT CMAKE_BUILD_TYPE)
     #SET(CMAKE_BUILD_TYPE "Debug")
     #SET(CMAKE_BUILD_TYPE "Debug")
@@ -9,10 +9,15 @@ IF(NOT CMAKE_BUILD_TYPE)
 ENDIF(NOT CMAKE_BUILD_TYPE)
 ENDIF(NOT CMAKE_BUILD_TYPE)
 
 
 IF(NOT POLYCODE_RELEASE_DIR)
 IF(NOT POLYCODE_RELEASE_DIR)
-    SET(POLYCODE_RELEASE_DIR ${PolycodeExternals_SOURCE_DIR}/../Release/${CMAKE_SYSTEM_NAME})
+    SET(POLYCODE_RELEASE_DIR ${PolycodeDependencies_SOURCE_DIR}/../Release/${CMAKE_SYSTEM_NAME})
     MESSAGE("No POLYCODE_RELEASE_DIR specified, to ${POLYCODE_RELEASE_DIR}") 
     MESSAGE("No POLYCODE_RELEASE_DIR specified, to ${POLYCODE_RELEASE_DIR}") 
 ENDIF(NOT POLYCODE_RELEASE_DIR)
 ENDIF(NOT POLYCODE_RELEASE_DIR)
 
 
+IF(NOT POLYCODE_EXTERNALS_DOWNLOAD_DIR)
+    SET(POLYCODE_EXTERNALS_DOWNLOAD_DIR ${PolycodeDependencies_SOURCE_DIR}/Downloads)
+    MESSAGE("No POLYCODE_EXTERNALS_DOWNLOAD_DIR specified, to ${POLYCODE_EXTERNALS_DOWNLOAD_DIR}") 
+ENDIF(NOT POLYCODE_EXTERNALS_DOWNLOAD_DIR)
+
 SET(POLYCODE_EXTERNALS_CORE_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Core/Dependencies)
 SET(POLYCODE_EXTERNALS_CORE_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Core/Dependencies)
 SET(POLYCODE_EXTERNALS_MODULES_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Modules/Dependencies)
 SET(POLYCODE_EXTERNALS_MODULES_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Modules/Dependencies)
 SET(POLYCODE_EXTERNALS_TOOLS_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies)
 SET(POLYCODE_EXTERNALS_TOOLS_PREFIX ${POLYCODE_RELEASE_DIR}/Framework/Tools/Dependencies)
@@ -38,7 +43,7 @@ OPTION(POLYCODE_EXTERNAL_BULLET "Download and build the Bullet package" ON)
 OPTION(POLYCODE_EXTERNAL_ASSIMP "Download and build the Assimp package" ON)
 OPTION(POLYCODE_EXTERNAL_ASSIMP "Download and build the Assimp package" ON)
 
 
 # Some non-standard CMake modules
 # Some non-standard CMake modules
-SET(CMAKE_MODULE_PATH ${PolycodeExternals_SOURCE_DIR}/../CMake)
+SET(CMAKE_MODULE_PATH ${PolycodeDependencies_SOURCE_DIR}/../CMake)
 
 
 IF(POLYCODE_EXTERNAL_PNG)
 IF(POLYCODE_EXTERNAL_PNG)
     INCLUDE(ExternalPNG)
     INCLUDE(ExternalPNG)