From 1d9648643744c9aec110588a96f801e579690333 Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 18 May 2015 21:44:54 -0600 Subject: [PATCH] Refactored: Reformat CMake files to conform to editor config --- AssimpConfig.cmake.in | 6 +- CMakeLists.txt | 322 ++-- cmake-modules/AddGTest.cmake | 88 +- cmake-modules/DebSourcePPA.cmake | 694 ++++---- cmake-modules/FindDirectX.cmake | 200 +-- cmake-modules/FindPkgMacros.cmake | 284 ++-- cmake-modules/FindZLIB.cmake | 96 +- cmake-modules/Findassimp.cmake | 26 +- cmake-modules/PrecompiledHeader.cmake | 30 +- code/CMakeLists.txt | 1562 +++++++++---------- samples/SimpleOpenGL/CMakeLists.txt | 80 +- samples/SimpleTexturedOpenGL/CMakeLists.txt | 86 +- test/CMakeLists.txt | 131 +- tools/assimp_cmd/CMakeLists.txt | 76 +- tools/assimp_view/CMakeLists.txt | 74 +- 15 files changed, 1877 insertions(+), 1878 deletions(-) diff --git a/AssimpConfig.cmake.in b/AssimpConfig.cmake.in index d46fa8315..5bb705a41 100644 --- a/AssimpConfig.cmake.in +++ b/AssimpConfig.cmake.in @@ -7,10 +7,10 @@ # Compute paths get_filename_component(FOOBAR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) if(EXISTS "${FOOBAR_CMAKE_DIR}/CMakeCache.txt") - # In build tree - include("${FOOBAR_CMAKE_DIR}/FooBarBuildTreeSettings.cmake") + # In build tree + include("${FOOBAR_CMAKE_DIR}/FooBarBuildTreeSettings.cmake") else() - set(FOOBAR_INCLUDE_DIRS "${FOOBAR_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@") + set(FOOBAR_INCLUDE_DIRS "${FOOBAR_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@") endif() # Our library dependencies (contains definitions for IMPORTED targets) diff --git a/CMakeLists.txt b/CMakeLists.txt index d8bace045..a79c0c371 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,8 +4,8 @@ PROJECT( Assimp ) option(BUILD_SHARED_LIBS "Build package with shared libraries." ON) if(NOT BUILD_SHARED_LIBS) - #set(CMAKE_EXE_LINKER_FLAGS "-static") - set(LINK_SEARCH_START_STATIC TRUE) + #set(CMAKE_EXE_LINKER_FLAGS "-static") + set(LINK_SEARCH_START_STATIC TRUE) endif(NOT BUILD_SHARED_LIBS) # Define here the needed parameters @@ -23,27 +23,27 @@ add_definitions( -DOPENDDL_NO_USE_CPP11 ) # Get the current working branch execute_process( - COMMAND git rev-parse --abbrev-ref HEAD - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - OUTPUT_VARIABLE GIT_BRANCH - OUTPUT_STRIP_TRAILING_WHITESPACE + COMMAND git rev-parse --abbrev-ref HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE ) # Get the latest abbreviated commit hash of the working branch execute_process( - COMMAND git log -1 --format=%h - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE + COMMAND git log -1 --format=%h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT GIT_COMMIT_HASH) - set(GIT_COMMIT_HASH 0) + set(GIT_COMMIT_HASH 0) endif(NOT GIT_COMMIT_HASH) configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/revision.h.in - ${CMAKE_CURRENT_BINARY_DIR}/revision.h + ${CMAKE_CURRENT_SOURCE_DIR}/revision.h.in + ${CMAKE_CURRENT_BINARY_DIR}/revision.h ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) @@ -59,16 +59,16 @@ option(ASSIMP_ANDROID_JNIIOSYSTEM "Android JNI IOSystem support is active" OFF) # Workaround to be able to deal with compiler bug "Too many sections" with mingw. if( CMAKE_COMPILER_IS_MINGW ) - ADD_DEFINITIONS(-DASSIMP_BUILD_NO_IFC_IMPORTER ) + ADD_DEFINITIONS(-DASSIMP_BUILD_NO_IFC_IMPORTER ) endif() if((CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) AND NOT CMAKE_COMPILER_IS_MINGW) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # this is a very important switch and some libraries seem now to have it.... - # hide all not-exported symbols - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -Wall" ) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # this is a very important switch and some libraries seem now to have it.... + # hide all not-exported symbols + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -Wall" ) elseif(MSVC) - # enable multi-core compilation with MSVC - add_definitions(/MP) + # enable multi-core compilation with MSVC + add_definitions(/MP) endif() INCLUDE (FindPkgConfig) @@ -81,51 +81,51 @@ INCLUDE (PrecompiledHeader) # source tree. During an out-of-source build, however, do not litter this # directory, since that is probably what the user wanted to avoid. IF ( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR ) - SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/lib" ) - SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/lib" ) - SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/bin" ) + SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/lib" ) + SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/lib" ) + SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/bin" ) ENDIF ( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR ) # Cache these to allow the user to override them manually. SET( ASSIMP_LIB_INSTALL_DIR "lib" CACHE PATH - "Path the built library files are installed to." ) + "Path the built library files are installed to." ) SET( ASSIMP_INCLUDE_INSTALL_DIR "include" CACHE PATH - "Path the header files are installed to." ) + "Path the header files are installed to." ) SET( ASSIMP_BIN_INSTALL_DIR "bin" CACHE PATH - "Path the tool executables are installed to." ) + "Path the tool executables are installed to." ) SET(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Debug Postfitx for lib, samples and tools") # Only generate this target if no higher-level project already has IF (NOT TARGET uninstall) - # add make uninstall capability - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) - add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") + # add make uninstall capability + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) + add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") ENDIF() # Globally enable Boost resp. the Boost workaround – it is also needed by the # tools which include the Assimp headers. option ( ASSIMP_ENABLE_BOOST_WORKAROUND - "If a simple implementation of the used Boost functions is used. Slightly reduces functionality, but enables builds without Boost available." - ON + "If a simple implementation of the used Boost functions is used. Slightly reduces functionality, but enables builds without Boost available." + ON ) IF ( ASSIMP_ENABLE_BOOST_WORKAROUND ) - INCLUDE_DIRECTORIES( code/BoostWorkaround ) - ADD_DEFINITIONS( -DASSIMP_BUILD_BOOST_WORKAROUND ) - MESSAGE( STATUS "Building a non-boost version of Assimp." ) + INCLUDE_DIRECTORIES( code/BoostWorkaround ) + ADD_DEFINITIONS( -DASSIMP_BUILD_BOOST_WORKAROUND ) + MESSAGE( STATUS "Building a non-boost version of Assimp." ) ELSE ( ASSIMP_ENABLE_BOOST_WORKAROUND ) - SET( Boost_DETAILED_FAILURE_MSG ON ) - SET( Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48.0" "1.48" "1.49" "1.49.0" "1.50" "1.50.0" "1.51" "1.51.0" "1.52.0" "1.53.0" "1.54.0" "1.55" "1.55.0" "1.56" "1.56.0" "1.57" "1.57.0" "1.58" "1.58.0" ) - FIND_PACKAGE( Boost ) - IF ( NOT Boost_FOUND ) - MESSAGE( FATAL_ERROR - "Boost libraries (http://www.boost.org/) not found. " - "You can build a non-boost version of Assimp with slightly reduced " + SET( Boost_DETAILED_FAILURE_MSG ON ) + SET( Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48.0" "1.48" "1.49" "1.49.0" "1.50" "1.50.0" "1.51" "1.51.0" "1.52.0" "1.53.0" "1.54.0" "1.55" "1.55.0" "1.56" "1.56.0" "1.57" "1.57.0" "1.58" "1.58.0" ) + FIND_PACKAGE( Boost ) + IF ( NOT Boost_FOUND ) + MESSAGE( FATAL_ERROR + "Boost libraries (http://www.boost.org/) not found. " + "You can build a non-boost version of Assimp with slightly reduced " "functionality by specifying -DASSIMP_ENABLE_BOOST_WORKAROUND=ON." - ) - ENDIF ( NOT Boost_FOUND ) + ) + ENDIF ( NOT Boost_FOUND ) - INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIRS} ) + INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIRS} ) ENDIF ( ASSIMP_ENABLE_BOOST_WORKAROUND ) # cmake configuration files @@ -134,8 +134,8 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/assimp-config-version.cmake.in" "${C install(FILES "${CMAKE_CURRENT_BINARY_DIR}/assimp-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/assimp-config-version.cmake" DESTINATION "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp-${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}" COMPONENT ${LIBASSIMP-DEV_COMPONENT}) option ( ASSIMP_NO_EXPORT - "Disable Assimp's export functionality." - OFF + "Disable Assimp's export functionality." + OFF ) if( CMAKE_COMPILER_IS_GNUCXX ) @@ -146,134 +146,134 @@ endif( CMAKE_COMPILER_IS_GNUCXX ) # Search for zlib find_package(ZLIB) if( NOT ZLIB_FOUND ) - message(STATUS "compiling zlib from souces") - include(CheckIncludeFile) - include(CheckTypeSize) - include(CheckFunctionExists) - # compile from sources - add_subdirectory(contrib/zlib) - set(ZLIB_FOUND 1) - set(ZLIB_LIBRARIES zlibstatic) - set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/contrib/zlib ${CMAKE_CURRENT_BINARY_DIR}/contrib/zlib) + message(STATUS "compiling zlib from souces") + include(CheckIncludeFile) + include(CheckTypeSize) + include(CheckFunctionExists) + # compile from sources + add_subdirectory(contrib/zlib) + set(ZLIB_FOUND 1) + set(ZLIB_LIBRARIES zlibstatic) + set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/contrib/zlib ${CMAKE_CURRENT_BINARY_DIR}/contrib/zlib) else(NOT ZLIB_FOUND) - ADD_DEFINITIONS(-DASSIMP_BUILD_NO_OWN_ZLIB) - set(ZLIB_LIBRARIES_LINKED -lz) + ADD_DEFINITIONS(-DASSIMP_BUILD_NO_OWN_ZLIB) + set(ZLIB_LIBRARIES_LINKED -lz) endif(NOT ZLIB_FOUND) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) # Search for unzip if (PKG_CONFIG_FOUND) - PKG_CHECK_MODULES(UNZIP minizip) + PKG_CHECK_MODULES(UNZIP minizip) endif (PKG_CONFIG_FOUND) IF ( ASSIMP_NO_EXPORT ) - ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT) - MESSAGE( STATUS "Build an import-only version of Assimp." ) + ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT) + MESSAGE( STATUS "Build an import-only version of Assimp." ) ENDIF( ASSIMP_NO_EXPORT ) SET ( ASSIMP_BUILD_ARCHITECTURE "" CACHE STRING - "describe the current architecture." + "describe the current architecture." ) IF ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "") ELSE ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "") - ADD_DEFINITIONS ( -D'ASSIMP_BUILD_ARCHITECTURE="${ASSIMP_BUILD_ARCHITECTURE}"' ) + ADD_DEFINITIONS ( -D'ASSIMP_BUILD_ARCHITECTURE="${ASSIMP_BUILD_ARCHITECTURE}"' ) ENDIF ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "") # ${CMAKE_GENERATOR} SET ( ASSIMP_BUILD_COMPILER "" CACHE STRING - "describe the current compiler." + "describe the current compiler." ) IF ( ASSIMP_BUILD_COMPILER STREQUAL "") ELSE ( ASSIMP_BUILD_COMPILER STREQUAL "") - ADD_DEFINITIONS ( -D'ASSIMP_BUILD_COMPILER="${ASSIMP_BUILD_COMPILER}"' ) + ADD_DEFINITIONS ( -D'ASSIMP_BUILD_COMPILER="${ASSIMP_BUILD_COMPILER}"' ) ENDIF ( ASSIMP_BUILD_COMPILER STREQUAL "") MARK_AS_ADVANCED ( ASSIMP_BUILD_ARCHITECTURE ASSIMP_BUILD_COMPILER ) SET ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER OFF CACHE BOOL - "Build the C4D importer, which relies on the non-free Melange SDK." + "Build the C4D importer, which relies on the non-free Melange SDK." ) IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - IF ( MSVC ) - SET(C4D_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/_melange/includes") - - # pick the correct prebuilt library - IF(MSVC11) - SET(C4D_LIB_POSTFIX "_2012md") - ELSEIF(MSVC10) - SET(C4D_LIB_POSTFIX "_2010md") - ELSEIF(MSVC90) - SET(C4D_LIB_POSTFIX "_2008md") - ELSE() - MESSAGE( FATAL_ERROR - "C4D is currently only supported with MSVC 9, 10, 11" - ) - ENDIF() - - IF(CMAKE_CL_64) - SET(C4D_LIB_ARCH_POSTFIX "_x64") - ELSE() - SET(C4D_LIB_ARCH_POSTFIX "") - ENDIF() - - SET(C4D_LIB_BASE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/_melange/lib/WIN") - - SET(C4D_DEBUG_LIBRARY "${C4D_LIB_BASE_PATH}/debug/_melange_lib${C4D_LIB_ARCH_POSTFIX}${C4D_LIB_POSTFIX}.lib") - SET(C4D_RELEASE_LIBRARY "${C4D_LIB_BASE_PATH}/release/_melange_lib${C4D_LIB_ARCH_POSTFIX}${C4D_LIB_POSTFIX}.lib") - - # winsock and winmm are necessary dependencies of melange (this is undocumented, but true.) - SET(C4D_EXTRA_LIBRARIES WSock32.lib Winmm.lib) - ELSE () - MESSAGE( FATAL_ERROR - "C4D is currently only available on Windows with melange SDK installed in contrib/Melange" - ) - ENDIF ( MSVC ) + IF ( MSVC ) + SET(C4D_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/_melange/includes") + + # pick the correct prebuilt library + IF(MSVC11) + SET(C4D_LIB_POSTFIX "_2012md") + ELSEIF(MSVC10) + SET(C4D_LIB_POSTFIX "_2010md") + ELSEIF(MSVC90) + SET(C4D_LIB_POSTFIX "_2008md") + ELSE() + MESSAGE( FATAL_ERROR + "C4D is currently only supported with MSVC 9, 10, 11" + ) + ENDIF() + + IF(CMAKE_CL_64) + SET(C4D_LIB_ARCH_POSTFIX "_x64") + ELSE() + SET(C4D_LIB_ARCH_POSTFIX "") + ENDIF() + + SET(C4D_LIB_BASE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/contrib/Melange/_melange/lib/WIN") + + SET(C4D_DEBUG_LIBRARY "${C4D_LIB_BASE_PATH}/debug/_melange_lib${C4D_LIB_ARCH_POSTFIX}${C4D_LIB_POSTFIX}.lib") + SET(C4D_RELEASE_LIBRARY "${C4D_LIB_BASE_PATH}/release/_melange_lib${C4D_LIB_ARCH_POSTFIX}${C4D_LIB_POSTFIX}.lib") + + # winsock and winmm are necessary dependencies of melange (this is undocumented, but true.) + SET(C4D_EXTRA_LIBRARIES WSock32.lib Winmm.lib) + ELSE () + MESSAGE( FATAL_ERROR + "C4D is currently only available on Windows with melange SDK installed in contrib/Melange" + ) + ENDIF ( MSVC ) else (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - ADD_DEFINITIONS( -DASSIMP_BUILD_NO_C4D_IMPORTER ) + ADD_DEFINITIONS( -DASSIMP_BUILD_NO_C4D_IMPORTER ) ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) ADD_SUBDIRECTORY( code/ ) option ( ASSIMP_BUILD_ASSIMP_TOOLS - "If the supplementary tools for Assimp are built in addition to the library." - ON + "If the supplementary tools for Assimp are built in addition to the library." + ON ) IF ( ASSIMP_BUILD_ASSIMP_TOOLS ) - IF ( WIN32 ) - ADD_SUBDIRECTORY( tools/assimp_view/ ) - ENDIF ( WIN32 ) - ADD_SUBDIRECTORY( tools/assimp_cmd/ ) + IF ( WIN32 ) + ADD_SUBDIRECTORY( tools/assimp_view/ ) + ENDIF ( WIN32 ) + ADD_SUBDIRECTORY( tools/assimp_cmd/ ) ENDIF ( ASSIMP_BUILD_ASSIMP_TOOLS ) option ( ASSIMP_BUILD_SAMPLES - "If the official samples are built as well (needs Glut)." - OFF + "If the official samples are built as well (needs Glut)." + OFF ) IF ( ASSIMP_BUILD_SAMPLES) - IF ( WIN32 ) - ADD_SUBDIRECTORY( samples/SimpleTexturedOpenGL/ ) - ENDIF ( WIN32 ) - ADD_SUBDIRECTORY( samples/SimpleOpenGL/ ) + IF ( WIN32 ) + ADD_SUBDIRECTORY( samples/SimpleTexturedOpenGL/ ) + ENDIF ( WIN32 ) + ADD_SUBDIRECTORY( samples/SimpleOpenGL/ ) ENDIF ( ASSIMP_BUILD_SAMPLES ) option ( ASSIMP_BUILD_TESTS - "If the test suite for Assimp is built in addition to the library." - ON + "If the test suite for Assimp is built in addition to the library." + ON ) IF ( ASSIMP_BUILD_TESTS ) - ADD_SUBDIRECTORY( test/ ) + ADD_SUBDIRECTORY( test/ ) ENDIF ( ASSIMP_BUILD_TESTS ) IF(MSVC) - option ( ASSIMP_INSTALL_PDB - "Install MSVC debug files." - ON - ) + option ( ASSIMP_INSTALL_PDB + "Install MSVC debug files." + ON + ) ENDIF(MSVC) # Generate a pkg-config .pc for the Assimp library. @@ -281,50 +281,50 @@ CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/assimp.pc.in" "${PROJECT_BINARY_DIR}/assi INSTALL( FILES "${PROJECT_BINARY_DIR}/assimp.pc" DESTINATION ${ASSIMP_LIB_INSTALL_DIR}/pkgconfig/ COMPONENT ${LIBASSIMP-DEV_COMPONENT}) if(CMAKE_CPACK_COMMAND AND UNIX AND ASSIMP_OPT_BUILD_PACKAGES) - # Packing information - set(CPACK_PACKAGE_NAME "assimp{ASSIMP_VERSION_MAJOR}") - set(CPACK_PACKAGE_CONTACT "" CACHE STRING "Package maintainer and PGP signer.") - set(CPACK_PACKAGE_VENDOR "http://assimp.sourceforge.net/") - set(CPACK_PACKAGE_DISPLAY_NAME "Assimp ${ASSIMP_VERSION}") - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY " - Open Asset Import Library ${ASSIMP_VERSION}") - set(CPACK_PACKAGE_VERSION "${ASSIMP_VERSION}.${ASSIMP_PACKAGE_VERSION}" ) - set(CPACK_PACKAGE_VERSION_MAJOR "${ASSIMP_VERSION_MAJOR}") - set(CPACK_PACKAGE_VERSION_MINOR "${ASSIMP_VERSION_MINOR}") - set(CPACK_PACKAGE_VERSION_PATCH "${ASSIMP_VERSION_PATCH}") - set(CPACK_PACKAGE_INSTALL_DIRECTORY "assimp${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") + # Packing information + set(CPACK_PACKAGE_NAME "assimp{ASSIMP_VERSION_MAJOR}") + set(CPACK_PACKAGE_CONTACT "" CACHE STRING "Package maintainer and PGP signer.") + set(CPACK_PACKAGE_VENDOR "http://assimp.sourceforge.net/") + set(CPACK_PACKAGE_DISPLAY_NAME "Assimp ${ASSIMP_VERSION}") + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY " - Open Asset Import Library ${ASSIMP_VERSION}") + set(CPACK_PACKAGE_VERSION "${ASSIMP_VERSION}.${ASSIMP_PACKAGE_VERSION}" ) + set(CPACK_PACKAGE_VERSION_MAJOR "${ASSIMP_VERSION_MAJOR}") + set(CPACK_PACKAGE_VERSION_MINOR "${ASSIMP_VERSION_MINOR}") + set(CPACK_PACKAGE_VERSION_PATCH "${ASSIMP_VERSION_PATCH}") + set(CPACK_PACKAGE_INSTALL_DIRECTORY "assimp${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") - string(TOUPPER ${LIBASSIMP_COMPONENT} "LIBASSIMP_COMPONENT_UPPER") - string(TOUPPER ${LIBASSIMP-DEV_COMPONENT} "LIBASSIMP-DEV_COMPONENT_UPPER") + string(TOUPPER ${LIBASSIMP_COMPONENT} "LIBASSIMP_COMPONENT_UPPER") + string(TOUPPER ${LIBASSIMP-DEV_COMPONENT} "LIBASSIMP-DEV_COMPONENT_UPPER") - set(CPACK_COMPONENT_ASSIMP-BIN_DISPLAY_NAME "tools") - set(CPACK_COMPONENT_ASSIMP-BIN_DEPENDS "${LIBASSIMP_COMPONENT}" ) - set(CPACK_COMPONENT_${LIBASSIMP_COMPONENT_UPPER}_DISPLAY_NAME "libraries") - set(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DISPLAY_NAME "common headers and installs") - set(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DEPENDS $ "{LIBASSIMP_COMPONENT}" ) - set(CPACK_COMPONENT_ASSIMP-DEV_DISPLAY_NAME "${CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT}_DISPLAY_NAME}" ) - set(CPACK_COMPONENT_ASSIMP-DEV_DEPENDS "${LIBASSIMP-DEV_COMPONENT}" ) - set(CPACK_DEBIAN_BUILD_DEPENDS debhelper cmake libboost-dev libboost-thread-dev libboost-math-dev zlib1g-dev pkg-config) + set(CPACK_COMPONENT_ASSIMP-BIN_DISPLAY_NAME "tools") + set(CPACK_COMPONENT_ASSIMP-BIN_DEPENDS "${LIBASSIMP_COMPONENT}" ) + set(CPACK_COMPONENT_${LIBASSIMP_COMPONENT_UPPER}_DISPLAY_NAME "libraries") + set(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DISPLAY_NAME "common headers and installs") + set(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DEPENDS $ "{LIBASSIMP_COMPONENT}" ) + set(CPACK_COMPONENT_ASSIMP-DEV_DISPLAY_NAME "${CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT}_DISPLAY_NAME}" ) + set(CPACK_COMPONENT_ASSIMP-DEV_DEPENDS "${LIBASSIMP-DEV_COMPONENT}" ) + set(CPACK_DEBIAN_BUILD_DEPENDS debhelper cmake libboost-dev libboost-thread-dev libboost-math-dev zlib1g-dev pkg-config) - # debian - set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") - set(CPACK_DEBIAN_CMAKE_OPTIONS "-DBUILD_ASSIMP_SAMPLES:BOOL=${ASSIMP_BUILD_SAMPLES}") - set(CPACK_DEBIAN_PACKAGE_SECTION "libs" ) - set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_COMPONENTS_ALL}") - set(CPACK_DEBIAN_PACKAGE_SUGGESTS) - set(CPACK_DEBIAN_PACKAGE_NAME "assimp") - set(CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES contrib/cppunit-1.12.1 contrib/cppunit_note.txt contrib/zlib workspaces test doc obj samples packaging) - set(CPACK_DEBIAN_PACKAGE_SOURCE_COPY svn export --force) - set(CPACK_DEBIAN_CHANGELOG) - execute_process(COMMAND lsb_release -is - OUTPUT_VARIABLE _lsb_distribution OUTPUT_STRIP_TRAILING_WHITESPACE - RESULT_VARIABLE _lsb_release_failed) - set(CPACK_DEBIAN_DISTRIBUTION_NAME ${_lsb_distribution} CACHE STRING "Name of the distrubiton") - string(TOLOWER ${CPACK_DEBIAN_DISTRIBUTION_NAME} CPACK_DEBIAN_DISTRIBUTION_NAME) - if( ${CPACK_DEBIAN_DISTRIBUTION_NAME} STREQUAL "ubuntu" ) - set(CPACK_DEBIAN_DISTRIBUTION_RELEASES lucid maverick natty oneiric precise CACHE STRING "Release code-names of the distrubiton release") - endif() - set(DPUT_HOST "" CACHE STRING "PPA repository to upload the debian sources") - include(CPack) - include(DebSourcePPA) + # debian + set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") + set(CPACK_DEBIAN_CMAKE_OPTIONS "-DBUILD_ASSIMP_SAMPLES:BOOL=${ASSIMP_BUILD_SAMPLES}") + set(CPACK_DEBIAN_PACKAGE_SECTION "libs" ) + set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_COMPONENTS_ALL}") + set(CPACK_DEBIAN_PACKAGE_SUGGESTS) + set(CPACK_DEBIAN_PACKAGE_NAME "assimp") + set(CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES contrib/cppunit-1.12.1 contrib/cppunit_note.txt contrib/zlib workspaces test doc obj samples packaging) + set(CPACK_DEBIAN_PACKAGE_SOURCE_COPY svn export --force) + set(CPACK_DEBIAN_CHANGELOG) + execute_process(COMMAND lsb_release -is + OUTPUT_VARIABLE _lsb_distribution OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _lsb_release_failed) + set(CPACK_DEBIAN_DISTRIBUTION_NAME ${_lsb_distribution} CACHE STRING "Name of the distrubiton") + string(TOLOWER ${CPACK_DEBIAN_DISTRIBUTION_NAME} CPACK_DEBIAN_DISTRIBUTION_NAME) + if( ${CPACK_DEBIAN_DISTRIBUTION_NAME} STREQUAL "ubuntu" ) + set(CPACK_DEBIAN_DISTRIBUTION_RELEASES lucid maverick natty oneiric precise CACHE STRING "Release code-names of the distrubiton release") + endif() + set(DPUT_HOST "" CACHE STRING "PPA repository to upload the debian sources") + include(CPack) + include(DebSourcePPA) endif() diff --git a/cmake-modules/AddGTest.cmake b/cmake-modules/AddGTest.cmake index 8dd77415d..1ffd36a10 100644 --- a/cmake-modules/AddGTest.cmake +++ b/cmake-modules/AddGTest.cmake @@ -2,30 +2,30 @@ find_package(Threads REQUIRED) include(ExternalProject) if(MSYS OR MINGW) - set(DISABLE_PTHREADS ON) + set(DISABLE_PTHREADS ON) else() - set(DISABLE_PTHREADS OFF) + set(DISABLE_PTHREADS OFF) endif() if (MSVC) - set(RELEASE_LIB_DIR ReleaseLibs) - set(DEBUG_LIB_DIR DebugLibs) + set(RELEASE_LIB_DIR ReleaseLibs) + set(DEBUG_LIB_DIR DebugLibs) else() - set(RELEASE_LIB_DIR "") - set(DEBUG_LIB_DIR "") + set(RELEASE_LIB_DIR "") + set(DEBUG_LIB_DIR "") endif() set(GTEST_CMAKE_ARGS - "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" - "-Dgtest_force_shared_crt=ON" - "-Dgtest_disable_pthreads:BOOL=${DISABLE_PTHREADS}") + "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" + "-Dgtest_force_shared_crt=ON" + "-Dgtest_disable_pthreads:BOOL=${DISABLE_PTHREADS}") set(GTEST_RELEASE_LIB_DIR "") set(GTEST_DEBUGLIB_DIR "") if (MSVC) - set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} - "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${DEBUG_LIB_DIR}" - "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${RELEASE_LIB_DIR}") - set(GTEST_LIB_DIR) + set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} + "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${DEBUG_LIB_DIR}" + "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${RELEASE_LIB_DIR}") + set(GTEST_LIB_DIR) endif() set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gtest") @@ -33,40 +33,40 @@ set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gtest") # try to find git - if found, setup gtest find_package(Git) if(NOT GIT_FOUND) - set(AddGTest_FOUND false CACHE BOOL "Was gtest setup correctly?") + set(AddGTest_FOUND false CACHE BOOL "Was gtest setup correctly?") else(NOT GIT_FOUND) - set(AddGTest_FOUND true CACHE BOOL "Was gtest setup correctly?") - - ExternalProject_Add(gtest - GIT_REPOSITORY https://chromium.googlesource.com/external/googletest - TIMEOUT 10 - PREFIX "${GTEST_PREFIX}" - CMAKE_ARGS "${GTEST_CMAKE_ARGS}" - LOG_DOWNLOAD ON - LOG_CONFIGURE ON - LOG_BUILD ON - # Disable install - INSTALL_COMMAND "" - ) + set(AddGTest_FOUND true CACHE BOOL "Was gtest setup correctly?") - set(LIB_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}") - set(LIB_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(GTEST_LOCATION "${GTEST_PREFIX}/src/gtest-build") - set(GTEST_DEBUG_LIBRARIES - "${GTEST_LOCATION}/${DEBUG_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" - "${CMAKE_THREAD_LIBS_INIT}") - SET(GTEST_RELEASE_LIBRARIES - "${GTEST_LOCATION}/${RELEASE_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" - "${CMAKE_THREAD_LIBS_INIT}") + ExternalProject_Add(gtest + GIT_REPOSITORY https://chromium.googlesource.com/external/googletest + TIMEOUT 10 + PREFIX "${GTEST_PREFIX}" + CMAKE_ARGS "${GTEST_CMAKE_ARGS}" + LOG_DOWNLOAD ON + LOG_CONFIGURE ON + LOG_BUILD ON + # Disable install + INSTALL_COMMAND "" + ) - if(MSVC_VERSION EQUAL 1700) - add_definitions(-D_VARIADIC_MAX=10) - endif() + set(LIB_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}") + set(LIB_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GTEST_LOCATION "${GTEST_PREFIX}/src/gtest-build") + set(GTEST_DEBUG_LIBRARIES + "${GTEST_LOCATION}/${DEBUG_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" + "${CMAKE_THREAD_LIBS_INIT}") + SET(GTEST_RELEASE_LIBRARIES + "${GTEST_LOCATION}/${RELEASE_LIB_DIR}/${LIB_PREFIX}gtest${LIB_SUFFIX}" + "${CMAKE_THREAD_LIBS_INIT}") - ExternalProject_Get_Property(gtest source_dir) - include_directories(${source_dir}/include) - include_directories(${source_dir}/gtest/include) + if(MSVC_VERSION EQUAL 1700) + add_definitions(-D_VARIADIC_MAX=10) + endif() - ExternalProject_Get_Property(gtest binary_dir) - link_directories(${binary_dir}) + ExternalProject_Get_Property(gtest source_dir) + include_directories(${source_dir}/include) + include_directories(${source_dir}/gtest/include) + + ExternalProject_Get_Property(gtest binary_dir) + link_directories(${binary_dir}) endif(NOT GIT_FOUND) diff --git a/cmake-modules/DebSourcePPA.cmake b/cmake-modules/DebSourcePPA.cmake index 62c645251..d8a786fb2 100644 --- a/cmake-modules/DebSourcePPA.cmake +++ b/cmake-modules/DebSourcePPA.cmake @@ -1,347 +1,347 @@ -## Debian Source Package Generator -# -# Copyright (c) 2010 Daniel Pfeifer -# Many modifications by Rosen Diankov -# -# Creates source debian files and manages library dependencies -# -# Features: -# -# - Automatically generates symbols and run-time dependencies from the build dependencies -# - Custom copy of source directory via CPACK_DEBIAN_PACKAGE_SOURCE_COPY -# - Simultaneous output of multiple debian source packages for each distribution -# - Can specificy distribution-specific dependencies by suffixing DEPENDS with _${DISTRO_NAME}, for example: CPACK_DEBIAN_PACKAGE_DEPENDS_LUCID, CPACK_COMPONENT_MYCOMP0_DEPENDS_LUCID -# -# Usage: -# -# set(CPACK_DEBIAN_BUILD_DEPENDS debhelper cmake) -# set(CPACK_DEBIAN_PACKAGE_PRIORITY optional) -# set(CPACK_DEBIAN_PACKAGE_SECTION devel) -# set(CPACK_DEBIAN_CMAKE_OPTIONS "-DMYOPTION=myvalue") -# set(CPACK_DEBIAN_PACKAGE_DEPENDS mycomp0 mycomp1 some_ubuntu_package) -# set(CPACK_DEBIAN_PACKAGE_DEPENDS_UBUNTU_LUCID mycomp0 mycomp1 lucid_specific_package) -# set(CPACK_DEBIAN_PACKAGE_NAME mypackage) -# set(CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES unnecessary_file unnecessary_dir/file0) -# set(CPACK_DEBIAN_PACKAGE_SOURCE_COPY svn export --force) # if using subversion -# set(CPACK_DEBIAN_DISTRIBUTION_NAME ubuntu) -# set(CPACK_DEBIAN_DISTRIBUTION_RELEASES karmic lucid maverick natty) -# set(CPACK_DEBIAN_CHANGELOG " * Extra change log lines") -# set(CPACK_DEBIAN_PACKAGE_SUGGESTS "ipython") -# set(CPACK_COMPONENT_X_RECOMMENDS "recommended-package") -## - -find_program(DEBUILD_EXECUTABLE debuild) -find_program(DPUT_EXECUTABLE dput) - -if(NOT DEBUILD_EXECUTABLE OR NOT DPUT_EXECUTABLE) - return() -endif(NOT DEBUILD_EXECUTABLE OR NOT DPUT_EXECUTABLE) - -# DEBIAN/control -# debian policy enforce lower case for package name -# Package: (mandatory) -IF(NOT CPACK_DEBIAN_PACKAGE_NAME) - STRING(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_DEBIAN_PACKAGE_NAME) -ENDIF(NOT CPACK_DEBIAN_PACKAGE_NAME) - -# Section: (recommended) -IF(NOT CPACK_DEBIAN_PACKAGE_SECTION) - SET(CPACK_DEBIAN_PACKAGE_SECTION "devel") -ENDIF(NOT CPACK_DEBIAN_PACKAGE_SECTION) - -# Priority: (recommended) -IF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY) - SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") -ENDIF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY) - -file(STRINGS ${CPACK_PACKAGE_DESCRIPTION_FILE} DESC_LINES) -foreach(LINE ${DESC_LINES}) - set(DEB_LONG_DESCRIPTION "${DEB_LONG_DESCRIPTION} ${LINE}\n") -endforeach(LINE ${DESC_LINES}) - -file(REMOVE_RECURSE "${CMAKE_BINARY_DIR}/Debian") -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/Debian") -set(DEBIAN_SOURCE_ORIG_DIR "${CMAKE_BINARY_DIR}/Debian/${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") - -if( CPACK_DEBIAN_PACKAGE_SOURCE_COPY ) - execute_process(COMMAND ${CPACK_DEBIAN_PACKAGE_SOURCE_COPY} "${CMAKE_SOURCE_DIR}" "${DEBIAN_SOURCE_ORIG_DIR}.orig") -else() - execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR} "${DEBIAN_SOURCE_ORIG_DIR}.orig") - execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${DEBIAN_SOURCE_ORIG_DIR}.orig/.git") - execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${DEBIAN_SOURCE_ORIG_DIR}.orig/.svn") -endif() - -# remove unnecessary folders -foreach(REMOVE_DIR ${CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES}) - file(REMOVE_RECURSE ${DEBIAN_SOURCE_ORIG_DIR}.orig/${REMOVE_DIR}) -endforeach() - -# create the original source tar -execute_process(COMMAND ${CMAKE_COMMAND} -E tar czf "${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}.orig.tar.gz" "${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.orig" WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/Debian) - -set(DEB_SOURCE_CHANGES) -foreach(RELEASE ${CPACK_DEBIAN_DISTRIBUTION_RELEASES}) - set(DEBIAN_SOURCE_DIR "${DEBIAN_SOURCE_ORIG_DIR}-${CPACK_DEBIAN_DISTRIBUTION_NAME}1~${RELEASE}1") - set(RELEASE_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_DISTRIBUTION_NAME}1~${RELEASE}1") - string(TOUPPER ${RELEASE} RELEASE_UPPER) - string(TOUPPER ${CPACK_DEBIAN_DISTRIBUTION_NAME} DISTRIBUTION_NAME_UPPER) - file(MAKE_DIRECTORY ${DEBIAN_SOURCE_DIR}/debian) - ############################################################################## - # debian/control - set(DEBIAN_CONTROL ${DEBIAN_SOURCE_DIR}/debian/control) - file(WRITE ${DEBIAN_CONTROL} - "Source: ${CPACK_DEBIAN_PACKAGE_NAME}\n" - "Section: ${CPACK_DEBIAN_PACKAGE_SECTION}\n" - "Priority: ${CPACK_DEBIAN_PACKAGE_PRIORITY}\n" - "DM-Upload-Allowed: yes\n" - "Maintainer: ${CPACK_PACKAGE_CONTACT}\n" - "Build-Depends: " - ) - - if( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - else( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - if( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) - else( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS}) - endif( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - endif( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - - - file(APPEND ${DEBIAN_CONTROL} "\n" - "Standards-Version: 3.8.4\n" - "Homepage: ${CPACK_PACKAGE_VENDOR}\n" - "\n" - "Package: ${CPACK_DEBIAN_PACKAGE_NAME}\n" - "Architecture: any\n" - "Depends: " - ) - - if( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - else( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - if( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) - else( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS}) - endif( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - endif( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - - file(APPEND ${DEBIAN_CONTROL} "\nRecommends: ") - if( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - else( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - if( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}}) - else( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS}) - endif( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) - endif( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - - file(APPEND ${DEBIAN_CONTROL} "\nSuggests: ") - if( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - else( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - if( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}}) - else( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS}) - file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") - endforeach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS}) - endif( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) - endif( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - - file(APPEND ${DEBIAN_CONTROL} "\n" - "Description: ${CPACK_PACKAGE_DISPLAY_NAME} ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}\n" - "${DEB_LONG_DESCRIPTION}" - ) - - foreach(COMPONENT ${CPACK_COMPONENTS_ALL}) - string(TOUPPER ${COMPONENT} UPPER_COMPONENT) - set(DEPENDS "\${shlibs:Depends}") - if( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - set(DEPENDS "${DEPENDS}, ${DEP}") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - else( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - if( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) - set(DEPENDS "${DEPENDS}, ${DEP}") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) - else( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS}) - set(DEPENDS "${DEPENDS}, ${DEP}") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS}) - endif( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) - endif( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - - set(RECOMMENDS) - if( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - set(RECOMMENDS "${RECOMMENDS} ${DEP}, ") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - else( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - if( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}}) - set(RECOMMENDS "${RECOMMENDS} ${DEP}, ") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}}) - else( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS}) - set(RECOMMENDS "${RECOMMENDS} ${DEP}, ") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS}) - endif( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) - endif( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - - set(SUGGESTS) - if( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - set(SUGGESTS "${SUGGESTS} ${DEP}, ") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) - else( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - if( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}}) - set(SUGGESTS "${SUGGESTS} ${DEP}, ") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}}) - else( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) - foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS}) - set(SUGGESTS "${SUGGESTS} ${DEP}, ") - endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS}) - endif( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) - endif( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) - - file(APPEND ${DEBIAN_CONTROL} "\n" - "Package: ${COMPONENT}\n" - "Architecture: any\n" - "Depends: ${DEPENDS}\n" - "Recommends: ${RECOMMENDS}\n" - "Suggests: ${SUGGESTS}\n" - "Description: ${CPACK_PACKAGE_DISPLAY_NAME} ${CPACK_COMPONENT_${UPPER_COMPONENT}_DISPLAY_NAME}\n" - "${DEB_LONG_DESCRIPTION}" - " .\n" - " ${CPACK_COMPONENT_${UPPER_COMPONENT}_DESCRIPTION}\n" - ) - endforeach(COMPONENT ${CPACK_COMPONENTS_ALL}) - - ############################################################################## - # debian/copyright - set(DEBIAN_COPYRIGHT ${DEBIAN_SOURCE_DIR}/debian/copyright) - execute_process(COMMAND ${CMAKE_COMMAND} -E - copy ${CPACK_RESOURCE_FILE_LICENSE} ${DEBIAN_COPYRIGHT} - ) - - ############################################################################## - # debian/rules - set(DEBIAN_RULES ${DEBIAN_SOURCE_DIR}/debian/rules) - file(WRITE ${DEBIAN_RULES} - "#!/usr/bin/make -f\n" - "\n" - "BUILDDIR = build_dir\n" - "\n" - "build:\n" - " mkdir $(BUILDDIR)\n" - " cd $(BUILDDIR); cmake -DCMAKE_BUILD_TYPE=Release ${CPACK_DEBIAN_CMAKE_OPTIONS} -DCMAKE_INSTALL_PREFIX=/usr ..\n" - " $(MAKE) -C $(BUILDDIR) preinstall\n" - " touch build\n" - "\n" - "binary: binary-indep binary-arch\n" - "\n" - "binary-indep: build\n" - "\n" - "binary-arch: build\n" - " cd $(BUILDDIR); cmake -DCOMPONENT=Unspecified -DCMAKE_INSTALL_PREFIX=../debian/tmp/usr -P cmake_install.cmake\n" - " mkdir -p debian/tmp/DEBIAN\n" - " dpkg-gensymbols -p${CPACK_DEBIAN_PACKAGE_NAME}\n" - ) - - foreach(COMPONENT ${CPACK_COMPONENTS_ALL}) - set(PATH debian/${COMPONENT}) - file(APPEND ${DEBIAN_RULES} - " cd $(BUILDDIR); cmake -DCOMPONENT=${COMPONENT} -DCMAKE_INSTALL_PREFIX=../${PATH}/usr -P cmake_install.cmake\n" - " mkdir -p ${PATH}/DEBIAN\n" - " dpkg-gensymbols -p${COMPONENT} -P${PATH}\n" - ) - endforeach(COMPONENT ${CPACK_COMPONENTS_ALL}) - - file(APPEND ${DEBIAN_RULES} - " dh_shlibdeps\n" - " dh_strip\n" # for reducing size - " dpkg-gencontrol -p${CPACK_DEBIAN_PACKAGE_NAME}\n" - " dpkg --build debian/tmp ..\n" - ) - - foreach(COMPONENT ${CPACK_COMPONENTS_ALL}) - set(PATH debian/${COMPONENT}) - file(APPEND ${DEBIAN_RULES} - " dpkg-gencontrol -p${COMPONENT} -P${PATH} -Tdebian/${COMPONENT}.substvars\n" - " dpkg --build ${PATH} ..\n" - ) - endforeach(COMPONENT ${CPACK_COMPONENTS_ALL}) - - file(APPEND ${DEBIAN_RULES} - "\n" - "clean:\n" - " rm -f build\n" - " rm -rf $(BUILDDIR)\n" - "\n" - ".PHONY: binary binary-arch binary-indep clean\n" - ) - - execute_process(COMMAND chmod +x ${DEBIAN_RULES}) - - ############################################################################## - # debian/compat - file(WRITE ${DEBIAN_SOURCE_DIR}/debian/compat "7") - - ############################################################################## - # debian/source/format - file(WRITE ${DEBIAN_SOURCE_DIR}/debian/source/format "3.0 (quilt)") - - ############################################################################## - # debian/changelog - set(DEBIAN_CHANGELOG ${DEBIAN_SOURCE_DIR}/debian/changelog) - execute_process(COMMAND date -R OUTPUT_VARIABLE DATE_TIME) - file(WRITE ${DEBIAN_CHANGELOG} - "${CPACK_DEBIAN_PACKAGE_NAME} (${RELEASE_PACKAGE_VERSION}) ${RELEASE}; urgency=medium\n\n" - " * Package built with CMake\n\n" - "${CPACK_DEBIAN_CHANGELOG}" - " -- ${CPACK_PACKAGE_CONTACT} ${DATE_TIME}" - ) - - ############################################################################## - # debuild -S - if( DEB_SOURCE_CHANGES ) - set(DEBUILD_OPTIONS "-sd") - else() - set(DEBUILD_OPTIONS "-sa") - endif() - set(SOURCE_CHANGES_FILE "${CPACK_DEBIAN_PACKAGE_NAME}_${RELEASE_PACKAGE_VERSION}_source.changes") - set(DEB_SOURCE_CHANGES ${DEB_SOURCE_CHANGES} "${SOURCE_CHANGES_FILE}") - add_custom_command(OUTPUT "${SOURCE_CHANGES_FILE}" COMMAND ${DEBUILD_EXECUTABLE} -S ${DEBUILD_OPTIONS} WORKING_DIRECTORY ${DEBIAN_SOURCE_DIR}) -endforeach(RELEASE ${CPACK_DEBIAN_DISTRIBUTION_RELEASES}) - -############################################################################## -# dput ppa:your-lp-id/ppa -add_custom_target(dput ${DPUT_EXECUTABLE} ${DPUT_HOST} ${DEB_SOURCE_CHANGES} DEPENDS ${DEB_SOURCE_CHANGES} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/Debian) +## Debian Source Package Generator +# +# Copyright (c) 2010 Daniel Pfeifer +# Many modifications by Rosen Diankov +# +# Creates source debian files and manages library dependencies +# +# Features: +# +# - Automatically generates symbols and run-time dependencies from the build dependencies +# - Custom copy of source directory via CPACK_DEBIAN_PACKAGE_SOURCE_COPY +# - Simultaneous output of multiple debian source packages for each distribution +# - Can specificy distribution-specific dependencies by suffixing DEPENDS with _${DISTRO_NAME}, for example: CPACK_DEBIAN_PACKAGE_DEPENDS_LUCID, CPACK_COMPONENT_MYCOMP0_DEPENDS_LUCID +# +# Usage: +# +# set(CPACK_DEBIAN_BUILD_DEPENDS debhelper cmake) +# set(CPACK_DEBIAN_PACKAGE_PRIORITY optional) +# set(CPACK_DEBIAN_PACKAGE_SECTION devel) +# set(CPACK_DEBIAN_CMAKE_OPTIONS "-DMYOPTION=myvalue") +# set(CPACK_DEBIAN_PACKAGE_DEPENDS mycomp0 mycomp1 some_ubuntu_package) +# set(CPACK_DEBIAN_PACKAGE_DEPENDS_UBUNTU_LUCID mycomp0 mycomp1 lucid_specific_package) +# set(CPACK_DEBIAN_PACKAGE_NAME mypackage) +# set(CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES unnecessary_file unnecessary_dir/file0) +# set(CPACK_DEBIAN_PACKAGE_SOURCE_COPY svn export --force) # if using subversion +# set(CPACK_DEBIAN_DISTRIBUTION_NAME ubuntu) +# set(CPACK_DEBIAN_DISTRIBUTION_RELEASES karmic lucid maverick natty) +# set(CPACK_DEBIAN_CHANGELOG " * Extra change log lines") +# set(CPACK_DEBIAN_PACKAGE_SUGGESTS "ipython") +# set(CPACK_COMPONENT_X_RECOMMENDS "recommended-package") +## + +find_program(DEBUILD_EXECUTABLE debuild) +find_program(DPUT_EXECUTABLE dput) + +if(NOT DEBUILD_EXECUTABLE OR NOT DPUT_EXECUTABLE) + return() +endif(NOT DEBUILD_EXECUTABLE OR NOT DPUT_EXECUTABLE) + +# DEBIAN/control +# debian policy enforce lower case for package name +# Package: (mandatory) +IF(NOT CPACK_DEBIAN_PACKAGE_NAME) + STRING(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_DEBIAN_PACKAGE_NAME) +ENDIF(NOT CPACK_DEBIAN_PACKAGE_NAME) + +# Section: (recommended) +IF(NOT CPACK_DEBIAN_PACKAGE_SECTION) + SET(CPACK_DEBIAN_PACKAGE_SECTION "devel") +ENDIF(NOT CPACK_DEBIAN_PACKAGE_SECTION) + +# Priority: (recommended) +IF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY) + SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") +ENDIF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY) + +file(STRINGS ${CPACK_PACKAGE_DESCRIPTION_FILE} DESC_LINES) +foreach(LINE ${DESC_LINES}) + set(DEB_LONG_DESCRIPTION "${DEB_LONG_DESCRIPTION} ${LINE}\n") +endforeach(LINE ${DESC_LINES}) + +file(REMOVE_RECURSE "${CMAKE_BINARY_DIR}/Debian") +file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/Debian") +set(DEBIAN_SOURCE_ORIG_DIR "${CMAKE_BINARY_DIR}/Debian/${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + +if( CPACK_DEBIAN_PACKAGE_SOURCE_COPY ) + execute_process(COMMAND ${CPACK_DEBIAN_PACKAGE_SOURCE_COPY} "${CMAKE_SOURCE_DIR}" "${DEBIAN_SOURCE_ORIG_DIR}.orig") +else() + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR} "${DEBIAN_SOURCE_ORIG_DIR}.orig") + execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${DEBIAN_SOURCE_ORIG_DIR}.orig/.git") + execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${DEBIAN_SOURCE_ORIG_DIR}.orig/.svn") +endif() + +# remove unnecessary folders +foreach(REMOVE_DIR ${CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES}) + file(REMOVE_RECURSE ${DEBIAN_SOURCE_ORIG_DIR}.orig/${REMOVE_DIR}) +endforeach() + +# create the original source tar +execute_process(COMMAND ${CMAKE_COMMAND} -E tar czf "${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}.orig.tar.gz" "${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.orig" WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/Debian) + +set(DEB_SOURCE_CHANGES) +foreach(RELEASE ${CPACK_DEBIAN_DISTRIBUTION_RELEASES}) + set(DEBIAN_SOURCE_DIR "${DEBIAN_SOURCE_ORIG_DIR}-${CPACK_DEBIAN_DISTRIBUTION_NAME}1~${RELEASE}1") + set(RELEASE_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_DISTRIBUTION_NAME}1~${RELEASE}1") + string(TOUPPER ${RELEASE} RELEASE_UPPER) + string(TOUPPER ${CPACK_DEBIAN_DISTRIBUTION_NAME} DISTRIBUTION_NAME_UPPER) + file(MAKE_DIRECTORY ${DEBIAN_SOURCE_DIR}/debian) + ############################################################################## + # debian/control + set(DEBIAN_CONTROL ${DEBIAN_SOURCE_DIR}/debian/control) + file(WRITE ${DEBIAN_CONTROL} + "Source: ${CPACK_DEBIAN_PACKAGE_NAME}\n" + "Section: ${CPACK_DEBIAN_PACKAGE_SECTION}\n" + "Priority: ${CPACK_DEBIAN_PACKAGE_PRIORITY}\n" + "DM-Upload-Allowed: yes\n" + "Maintainer: ${CPACK_PACKAGE_CONTACT}\n" + "Build-Depends: " + ) + + if( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + else( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + if( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) + else( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_BUILD_DEPENDS}) + endif( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + endif( CPACK_DEBIAN_BUILD_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + + + file(APPEND ${DEBIAN_CONTROL} "\n" + "Standards-Version: 3.8.4\n" + "Homepage: ${CPACK_PACKAGE_VENDOR}\n" + "\n" + "Package: ${CPACK_DEBIAN_PACKAGE_NAME}\n" + "Architecture: any\n" + "Depends: " + ) + + if( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + else( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + if( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) + else( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_DEPENDS}) + endif( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + endif( CPACK_DEBIAN_PACKAGE_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + + file(APPEND ${DEBIAN_CONTROL} "\nRecommends: ") + if( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + else( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + if( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}}) + else( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_RECOMMENDS}) + endif( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) + endif( CPACK_DEBIAN_PACKAGE_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + + file(APPEND ${DEBIAN_CONTROL} "\nSuggests: ") + if( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + else( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + if( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}}) + else( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS}) + file(APPEND ${DEBIAN_CONTROL} "${DEP}, ") + endforeach(DEP ${CPACK_DEBIAN_PACKAGE_SUGGESTS}) + endif( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) + endif( CPACK_DEBIAN_PACKAGE_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + + file(APPEND ${DEBIAN_CONTROL} "\n" + "Description: ${CPACK_PACKAGE_DISPLAY_NAME} ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}\n" + "${DEB_LONG_DESCRIPTION}" + ) + + foreach(COMPONENT ${CPACK_COMPONENTS_ALL}) + string(TOUPPER ${COMPONENT} UPPER_COMPONENT) + set(DEPENDS "\${shlibs:Depends}") + if( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + set(DEPENDS "${DEPENDS}, ${DEP}") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + else( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + if( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) + set(DEPENDS "${DEPENDS}, ${DEP}") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}}) + else( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS}) + set(DEPENDS "${DEPENDS}, ${DEP}") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS}) + endif( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER} ) + endif( CPACK_COMPONENT_${UPPER_COMPONENT}_DEPENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + + set(RECOMMENDS) + if( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + set(RECOMMENDS "${RECOMMENDS} ${DEP}, ") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + else( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + if( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}}) + set(RECOMMENDS "${RECOMMENDS} ${DEP}, ") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}}) + else( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS}) + set(RECOMMENDS "${RECOMMENDS} ${DEP}, ") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS}) + endif( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER} ) + endif( CPACK_COMPONENT_${UPPER_COMPONENT}_RECOMMENDS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + + set(SUGGESTS) + if( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + set(SUGGESTS "${SUGGESTS} ${DEP}, ") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER}}) + else( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + if( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}}) + set(SUGGESTS "${SUGGESTS} ${DEP}, ") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}}) + else( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) + foreach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS}) + set(SUGGESTS "${SUGGESTS} ${DEP}, ") + endforeach(DEP ${CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS}) + endif( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER} ) + endif( CPACK_COMPONENT_${UPPER_COMPONENT}_SUGGESTS_${DISTRIBUTION_NAME_UPPER}_${RELEASE_UPPER} ) + + file(APPEND ${DEBIAN_CONTROL} "\n" + "Package: ${COMPONENT}\n" + "Architecture: any\n" + "Depends: ${DEPENDS}\n" + "Recommends: ${RECOMMENDS}\n" + "Suggests: ${SUGGESTS}\n" + "Description: ${CPACK_PACKAGE_DISPLAY_NAME} ${CPACK_COMPONENT_${UPPER_COMPONENT}_DISPLAY_NAME}\n" + "${DEB_LONG_DESCRIPTION}" + " .\n" + " ${CPACK_COMPONENT_${UPPER_COMPONENT}_DESCRIPTION}\n" + ) + endforeach(COMPONENT ${CPACK_COMPONENTS_ALL}) + + ############################################################################## + # debian/copyright + set(DEBIAN_COPYRIGHT ${DEBIAN_SOURCE_DIR}/debian/copyright) + execute_process(COMMAND ${CMAKE_COMMAND} -E + copy ${CPACK_RESOURCE_FILE_LICENSE} ${DEBIAN_COPYRIGHT} + ) + + ############################################################################## + # debian/rules + set(DEBIAN_RULES ${DEBIAN_SOURCE_DIR}/debian/rules) + file(WRITE ${DEBIAN_RULES} + "#!/usr/bin/make -f\n" + "\n" + "BUILDDIR = build_dir\n" + "\n" + "build:\n" + " mkdir $(BUILDDIR)\n" + " cd $(BUILDDIR); cmake -DCMAKE_BUILD_TYPE=Release ${CPACK_DEBIAN_CMAKE_OPTIONS} -DCMAKE_INSTALL_PREFIX=/usr ..\n" + " $(MAKE) -C $(BUILDDIR) preinstall\n" + " touch build\n" + "\n" + "binary: binary-indep binary-arch\n" + "\n" + "binary-indep: build\n" + "\n" + "binary-arch: build\n" + " cd $(BUILDDIR); cmake -DCOMPONENT=Unspecified -DCMAKE_INSTALL_PREFIX=../debian/tmp/usr -P cmake_install.cmake\n" + " mkdir -p debian/tmp/DEBIAN\n" + " dpkg-gensymbols -p${CPACK_DEBIAN_PACKAGE_NAME}\n" + ) + + foreach(COMPONENT ${CPACK_COMPONENTS_ALL}) + set(PATH debian/${COMPONENT}) + file(APPEND ${DEBIAN_RULES} + " cd $(BUILDDIR); cmake -DCOMPONENT=${COMPONENT} -DCMAKE_INSTALL_PREFIX=../${PATH}/usr -P cmake_install.cmake\n" + " mkdir -p ${PATH}/DEBIAN\n" + " dpkg-gensymbols -p${COMPONENT} -P${PATH}\n" + ) + endforeach(COMPONENT ${CPACK_COMPONENTS_ALL}) + + file(APPEND ${DEBIAN_RULES} + " dh_shlibdeps\n" + " dh_strip\n" # for reducing size + " dpkg-gencontrol -p${CPACK_DEBIAN_PACKAGE_NAME}\n" + " dpkg --build debian/tmp ..\n" + ) + + foreach(COMPONENT ${CPACK_COMPONENTS_ALL}) + set(PATH debian/${COMPONENT}) + file(APPEND ${DEBIAN_RULES} + " dpkg-gencontrol -p${COMPONENT} -P${PATH} -Tdebian/${COMPONENT}.substvars\n" + " dpkg --build ${PATH} ..\n" + ) + endforeach(COMPONENT ${CPACK_COMPONENTS_ALL}) + + file(APPEND ${DEBIAN_RULES} + "\n" + "clean:\n" + " rm -f build\n" + " rm -rf $(BUILDDIR)\n" + "\n" + ".PHONY: binary binary-arch binary-indep clean\n" + ) + + execute_process(COMMAND chmod +x ${DEBIAN_RULES}) + + ############################################################################## + # debian/compat + file(WRITE ${DEBIAN_SOURCE_DIR}/debian/compat "7") + + ############################################################################## + # debian/source/format + file(WRITE ${DEBIAN_SOURCE_DIR}/debian/source/format "3.0 (quilt)") + + ############################################################################## + # debian/changelog + set(DEBIAN_CHANGELOG ${DEBIAN_SOURCE_DIR}/debian/changelog) + execute_process(COMMAND date -R OUTPUT_VARIABLE DATE_TIME) + file(WRITE ${DEBIAN_CHANGELOG} + "${CPACK_DEBIAN_PACKAGE_NAME} (${RELEASE_PACKAGE_VERSION}) ${RELEASE}; urgency=medium\n\n" + " * Package built with CMake\n\n" + "${CPACK_DEBIAN_CHANGELOG}" + " -- ${CPACK_PACKAGE_CONTACT} ${DATE_TIME}" + ) + + ############################################################################## + # debuild -S + if( DEB_SOURCE_CHANGES ) + set(DEBUILD_OPTIONS "-sd") + else() + set(DEBUILD_OPTIONS "-sa") + endif() + set(SOURCE_CHANGES_FILE "${CPACK_DEBIAN_PACKAGE_NAME}_${RELEASE_PACKAGE_VERSION}_source.changes") + set(DEB_SOURCE_CHANGES ${DEB_SOURCE_CHANGES} "${SOURCE_CHANGES_FILE}") + add_custom_command(OUTPUT "${SOURCE_CHANGES_FILE}" COMMAND ${DEBUILD_EXECUTABLE} -S ${DEBUILD_OPTIONS} WORKING_DIRECTORY ${DEBIAN_SOURCE_DIR}) +endforeach(RELEASE ${CPACK_DEBIAN_DISTRIBUTION_RELEASES}) + +############################################################################## +# dput ppa:your-lp-id/ppa +add_custom_target(dput ${DPUT_EXECUTABLE} ${DPUT_HOST} ${DEB_SOURCE_CHANGES} DEPENDS ${DEB_SOURCE_CHANGES} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/Debian) diff --git a/cmake-modules/FindDirectX.cmake b/cmake-modules/FindDirectX.cmake index c8eac1a7d..38a861a83 100644 --- a/cmake-modules/FindDirectX.cmake +++ b/cmake-modules/FindDirectX.cmake @@ -1,100 +1,100 @@ -#------------------------------------------------------------------- -# This file is part of the CMake build system for OGRE -# (Object-oriented Graphics Rendering Engine) -# For the latest info, see http://www.ogre3d.org/ -# -# The contents of this file are placed in the public domain. Feel -# free to make use of it in any way you like. -#------------------------------------------------------------------- - -# ----------------------------------------------------------------------------- -# Find DirectX SDK -# Define: -# DirectX_FOUND -# DirectX_INCLUDE_DIR -# DirectX_LIBRARY -# DirectX_ROOT_DIR - -if(WIN32) # The only platform it makes sense to check for DirectX SDK - include(FindPkgMacros) - findpkg_begin(DirectX) - - # Get path, convert backslashes as ${ENV_DXSDK_DIR} - getenv_path(DXSDK_DIR) - getenv_path(DIRECTX_HOME) - getenv_path(DIRECTX_ROOT) - getenv_path(DIRECTX_BASE) - - # construct search paths - set(DirectX_PREFIX_PATH - "${DXSDK_DIR}" "${ENV_DXSDK_DIR}" - "${DIRECTX_HOME}" "${ENV_DIRECTX_HOME}" - "${DIRECTX_ROOT}" "${ENV_DIRECTX_ROOT}" - "${DIRECTX_BASE}" "${ENV_DIRECTX_BASE}" - "C:/apps_x86/Microsoft DirectX SDK*" - "C:/Program Files (x86)/Microsoft DirectX SDK*" - "C:/apps/Microsoft DirectX SDK*" - "C:/Program Files/Microsoft DirectX SDK*" - "$ENV{ProgramFiles}/Microsoft DirectX SDK*" - ) - create_search_paths(DirectX) - # redo search if prefix path changed - clear_if_changed(DirectX_PREFIX_PATH - DirectX_LIBRARY - DirectX_INCLUDE_DIR - ) - - find_path(DirectX_INCLUDE_DIR NAMES d3d9.h HINTS ${DirectX_INC_SEARCH_PATH}) - # dlls are in DirectX_ROOT_DIR/Developer Runtime/x64|x86 - # lib files are in DirectX_ROOT_DIR/Lib/x64|x86 - if(CMAKE_CL_64) - set(DirectX_LIBPATH_SUFFIX "x64") - else(CMAKE_CL_64) - set(DirectX_LIBPATH_SUFFIX "x86") - endif(CMAKE_CL_64) - find_library(DirectX_LIBRARY NAMES d3d9 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) - find_library(DirectX_D3DX9_LIBRARY NAMES d3dx9 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) - find_library(DirectX_DXERR_LIBRARY NAMES DxErr HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) - find_library(DirectX_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) - - - # look for dxgi (needed by both 10 and 11) - find_library(DirectX_DXGI_LIBRARY NAMES dxgi HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) - - # look for d3dcompiler (needed by 11) - find_library(DirectX_D3DCOMPILER_LIBRARY NAMES d3dcompiler HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) - - findpkg_finish(DirectX) - set(DirectX_LIBRARIES ${DirectX_LIBRARIES} - ${DirectX_D3DX9_LIBRARY} - ${DirectX_DXERR_LIBRARY} - ${DirectX_DXGUID_LIBRARY} - ) - - mark_as_advanced(DirectX_D3DX9_LIBRARY DirectX_DXERR_LIBRARY DirectX_DXGUID_LIBRARY - DirectX_DXGI_LIBRARY DirectX_D3DCOMPILER_LIBRARY) - - - # look for D3D11 components - if (DirectX_FOUND) - find_path(DirectX_D3D11_INCLUDE_DIR NAMES D3D11Shader.h HINTS ${DirectX_INC_SEARCH_PATH}) - get_filename_component(DirectX_LIBRARY_DIR "${DirectX_LIBRARY}" PATH) - message(STATUS "DX lib dir: ${DirectX_LIBRARY_DIR}") - find_library(DirectX_D3D11_LIBRARY NAMES d3d11 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) - find_library(DirectX_D3DX11_LIBRARY NAMES d3dx11 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) - if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY) - set(DirectX_D3D11_FOUND TRUE) - set(DirectX_D3D11_INCLUDE_DIR ${DirectX_D3D11_INCLUDE_DIR}) - set(DirectX_D3D11_LIBRARIES ${DirectX_D3D11_LIBRARIES} - ${DirectX_D3D11_LIBRARY} - ${DirectX_D3DX11_LIBRARY} - ${DirectX_DXGI_LIBRARY} - ${DirectX_DXERR_LIBRARY} - ${DirectX_DXGUID_LIBRARY} - ${DirectX_D3DCOMPILER_LIBRARY} - ) - endif () - mark_as_advanced(DirectX_D3D11_INCLUDE_DIR DirectX_D3D11_LIBRARY DirectX_D3DX11_LIBRARY) - endif () - -endif(WIN32) +#------------------------------------------------------------------- +# This file is part of the CMake build system for OGRE +# (Object-oriented Graphics Rendering Engine) +# For the latest info, see http://www.ogre3d.org/ +# +# The contents of this file are placed in the public domain. Feel +# free to make use of it in any way you like. +#------------------------------------------------------------------- + +# ----------------------------------------------------------------------------- +# Find DirectX SDK +# Define: +# DirectX_FOUND +# DirectX_INCLUDE_DIR +# DirectX_LIBRARY +# DirectX_ROOT_DIR + +if(WIN32) # The only platform it makes sense to check for DirectX SDK + include(FindPkgMacros) + findpkg_begin(DirectX) + + # Get path, convert backslashes as ${ENV_DXSDK_DIR} + getenv_path(DXSDK_DIR) + getenv_path(DIRECTX_HOME) + getenv_path(DIRECTX_ROOT) + getenv_path(DIRECTX_BASE) + + # construct search paths + set(DirectX_PREFIX_PATH + "${DXSDK_DIR}" "${ENV_DXSDK_DIR}" + "${DIRECTX_HOME}" "${ENV_DIRECTX_HOME}" + "${DIRECTX_ROOT}" "${ENV_DIRECTX_ROOT}" + "${DIRECTX_BASE}" "${ENV_DIRECTX_BASE}" + "C:/apps_x86/Microsoft DirectX SDK*" + "C:/Program Files (x86)/Microsoft DirectX SDK*" + "C:/apps/Microsoft DirectX SDK*" + "C:/Program Files/Microsoft DirectX SDK*" + "$ENV{ProgramFiles}/Microsoft DirectX SDK*" + ) + create_search_paths(DirectX) + # redo search if prefix path changed + clear_if_changed(DirectX_PREFIX_PATH + DirectX_LIBRARY + DirectX_INCLUDE_DIR + ) + + find_path(DirectX_INCLUDE_DIR NAMES d3d9.h HINTS ${DirectX_INC_SEARCH_PATH}) + # dlls are in DirectX_ROOT_DIR/Developer Runtime/x64|x86 + # lib files are in DirectX_ROOT_DIR/Lib/x64|x86 + if(CMAKE_CL_64) + set(DirectX_LIBPATH_SUFFIX "x64") + else(CMAKE_CL_64) + set(DirectX_LIBPATH_SUFFIX "x86") + endif(CMAKE_CL_64) + find_library(DirectX_LIBRARY NAMES d3d9 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) + find_library(DirectX_D3DX9_LIBRARY NAMES d3dx9 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) + find_library(DirectX_DXERR_LIBRARY NAMES DxErr HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) + find_library(DirectX_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) + + + # look for dxgi (needed by both 10 and 11) + find_library(DirectX_DXGI_LIBRARY NAMES dxgi HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) + + # look for d3dcompiler (needed by 11) + find_library(DirectX_D3DCOMPILER_LIBRARY NAMES d3dcompiler HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) + + findpkg_finish(DirectX) + set(DirectX_LIBRARIES ${DirectX_LIBRARIES} + ${DirectX_D3DX9_LIBRARY} + ${DirectX_DXERR_LIBRARY} + ${DirectX_DXGUID_LIBRARY} + ) + + mark_as_advanced(DirectX_D3DX9_LIBRARY DirectX_DXERR_LIBRARY DirectX_DXGUID_LIBRARY + DirectX_DXGI_LIBRARY DirectX_D3DCOMPILER_LIBRARY) + + + # look for D3D11 components + if (DirectX_FOUND) + find_path(DirectX_D3D11_INCLUDE_DIR NAMES D3D11Shader.h HINTS ${DirectX_INC_SEARCH_PATH}) + get_filename_component(DirectX_LIBRARY_DIR "${DirectX_LIBRARY}" PATH) + message(STATUS "DX lib dir: ${DirectX_LIBRARY_DIR}") + find_library(DirectX_D3D11_LIBRARY NAMES d3d11 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) + find_library(DirectX_D3DX11_LIBRARY NAMES d3dx11 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX}) + if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY) + set(DirectX_D3D11_FOUND TRUE) + set(DirectX_D3D11_INCLUDE_DIR ${DirectX_D3D11_INCLUDE_DIR}) + set(DirectX_D3D11_LIBRARIES ${DirectX_D3D11_LIBRARIES} + ${DirectX_D3D11_LIBRARY} + ${DirectX_D3DX11_LIBRARY} + ${DirectX_DXGI_LIBRARY} + ${DirectX_DXERR_LIBRARY} + ${DirectX_DXGUID_LIBRARY} + ${DirectX_D3DCOMPILER_LIBRARY} + ) + endif () + mark_as_advanced(DirectX_D3D11_INCLUDE_DIR DirectX_D3D11_LIBRARY DirectX_D3DX11_LIBRARY) + endif () + +endif(WIN32) diff --git a/cmake-modules/FindPkgMacros.cmake b/cmake-modules/FindPkgMacros.cmake index bc3b145ba..facd5946b 100644 --- a/cmake-modules/FindPkgMacros.cmake +++ b/cmake-modules/FindPkgMacros.cmake @@ -1,142 +1,142 @@ -#------------------------------------------------------------------- -# This file is part of the CMake build system for OGRE -# (Object-oriented Graphics Rendering Engine) -# For the latest info, see http://www.ogre3d.org/ -# -# The contents of this file are placed in the public domain. Feel -# free to make use of it in any way you like. -#------------------------------------------------------------------- - -################################################################## -# Provides some common functionality for the FindPackage modules -################################################################## - -# Begin processing of package -macro(findpkg_begin PREFIX) - if (NOT ${PREFIX}_FIND_QUIETLY) - message(STATUS "Looking for ${PREFIX}...") - endif () -endmacro(findpkg_begin) - -# Display a status message unless FIND_QUIETLY is set -macro(pkg_message PREFIX) - if (NOT ${PREFIX}_FIND_QUIETLY) - message(STATUS ${ARGN}) - endif () -endmacro(pkg_message) - -# Get environment variable, define it as ENV_$var and make sure backslashes are converted to forward slashes -macro(getenv_path VAR) - set(ENV_${VAR} $ENV{${VAR}}) - # replace won't work if var is blank - if (ENV_${VAR}) - string( REGEX REPLACE "\\\\" "/" ENV_${VAR} ${ENV_${VAR}} ) - endif () -endmacro(getenv_path) - -# Construct search paths for includes and libraries from a PREFIX_PATH -macro(create_search_paths PREFIX) - foreach(dir ${${PREFIX}_PREFIX_PATH}) - set(${PREFIX}_INC_SEARCH_PATH ${${PREFIX}_INC_SEARCH_PATH} - ${dir}/include ${dir}/include/${PREFIX} ${dir}/Headers) - set(${PREFIX}_LIB_SEARCH_PATH ${${PREFIX}_LIB_SEARCH_PATH} - ${dir}/lib ${dir}/lib/${PREFIX} ${dir}/Libs) - endforeach(dir) - set(${PREFIX}_FRAMEWORK_SEARCH_PATH ${${PREFIX}_PREFIX_PATH}) -endmacro(create_search_paths) - -# clear cache variables if a certain variable changed -macro(clear_if_changed TESTVAR) - # test against internal check variable - if (NOT "${${TESTVAR}}" STREQUAL "${${TESTVAR}_INT_CHECK}") - message(STATUS "${TESTVAR} changed.") - foreach(var ${ARGN}) - set(${var} "NOTFOUND" CACHE STRING "x" FORCE) - endforeach(var) - endif () - set(${TESTVAR}_INT_CHECK ${${TESTVAR}} CACHE INTERNAL "x" FORCE) -endmacro(clear_if_changed) - -# Try to get some hints from pkg-config, if available -macro(use_pkgconfig PREFIX PKGNAME) - find_package(PkgConfig) - if (PKG_CONFIG_FOUND) - pkg_check_modules(${PREFIX} ${PKGNAME}) - endif () -endmacro (use_pkgconfig) - -# Couple a set of release AND debug libraries (or frameworks) -macro(make_library_set PREFIX) - if (${PREFIX}_FWK) - set(${PREFIX} ${${PREFIX}_FWK}) - elseif (${PREFIX}_REL AND ${PREFIX}_DBG) - set(${PREFIX} optimized ${${PREFIX}_REL} debug ${${PREFIX}_DBG}) - elseif (${PREFIX}_REL) - set(${PREFIX} ${${PREFIX}_REL}) - elseif (${PREFIX}_DBG) - set(${PREFIX} ${${PREFIX}_DBG}) - endif () -endmacro(make_library_set) - -# Generate debug names from given release names -macro(get_debug_names PREFIX) - foreach(i ${${PREFIX}}) - set(${PREFIX}_DBG ${${PREFIX}_DBG} ${i}d ${i}D ${i}_d ${i}_D ${i}_debug ${i}) - endforeach(i) -endmacro(get_debug_names) - -# Add the parent dir from DIR to VAR -macro(add_parent_dir VAR DIR) - get_filename_component(${DIR}_TEMP "${${DIR}}/.." ABSOLUTE) - set(${VAR} ${${VAR}} ${${DIR}_TEMP}) -endmacro(add_parent_dir) - -# Do the final processing for the package find. -macro(findpkg_finish PREFIX) - # skip if already processed during this run - if (NOT ${PREFIX}_FOUND) - if (${PREFIX}_INCLUDE_DIR AND ${PREFIX}_LIBRARY) - set(${PREFIX}_FOUND TRUE) - set(${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIR}) - set(${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARY}) - if (NOT ${PREFIX}_FIND_QUIETLY) - message(STATUS "Found ${PREFIX}: ${${PREFIX}_LIBRARIES}") - endif () - else () - if (NOT ${PREFIX}_FIND_QUIETLY) - message(STATUS "Could not locate ${PREFIX}") - endif () - if (${PREFIX}_FIND_REQUIRED) - message(FATAL_ERROR "Required library ${PREFIX} not found! Install the library (including dev packages) and try again. If the library is already installed, set the missing variables manually in cmake.") - endif () - endif () - - mark_as_advanced(${PREFIX}_INCLUDE_DIR ${PREFIX}_LIBRARY ${PREFIX}_LIBRARY_REL ${PREFIX}_LIBRARY_DBG ${PREFIX}_LIBRARY_FWK) - endif () -endmacro(findpkg_finish) - - -# Slightly customised framework finder -MACRO(findpkg_framework fwk) - IF(APPLE) - SET(${fwk}_FRAMEWORK_PATH - ${${fwk}_FRAMEWORK_SEARCH_PATH} - ${CMAKE_FRAMEWORK_PATH} - ~/Library/Frameworks - /Library/Frameworks - /System/Library/Frameworks - /Network/Library/Frameworks - /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks/ - ) - FOREACH(dir ${${fwk}_FRAMEWORK_PATH}) - SET(fwkpath ${dir}/${fwk}.framework) - IF(EXISTS ${fwkpath}) - SET(${fwk}_FRAMEWORK_INCLUDES ${${fwk}_FRAMEWORK_INCLUDES} - ${fwkpath}/Headers ${fwkpath}/PrivateHeaders) - if (NOT ${fwk}_LIBRARY_FWK) - SET(${fwk}_LIBRARY_FWK "-framework ${fwk}") - endif () - ENDIF(EXISTS ${fwkpath}) - ENDFOREACH(dir) - ENDIF(APPLE) -ENDMACRO(findpkg_framework) +#------------------------------------------------------------------- +# This file is part of the CMake build system for OGRE +# (Object-oriented Graphics Rendering Engine) +# For the latest info, see http://www.ogre3d.org/ +# +# The contents of this file are placed in the public domain. Feel +# free to make use of it in any way you like. +#------------------------------------------------------------------- + +################################################################## +# Provides some common functionality for the FindPackage modules +################################################################## + +# Begin processing of package +macro(findpkg_begin PREFIX) + if (NOT ${PREFIX}_FIND_QUIETLY) + message(STATUS "Looking for ${PREFIX}...") + endif () +endmacro(findpkg_begin) + +# Display a status message unless FIND_QUIETLY is set +macro(pkg_message PREFIX) + if (NOT ${PREFIX}_FIND_QUIETLY) + message(STATUS ${ARGN}) + endif () +endmacro(pkg_message) + +# Get environment variable, define it as ENV_$var and make sure backslashes are converted to forward slashes +macro(getenv_path VAR) + set(ENV_${VAR} $ENV{${VAR}}) + # replace won't work if var is blank + if (ENV_${VAR}) + string( REGEX REPLACE "\\\\" "/" ENV_${VAR} ${ENV_${VAR}} ) + endif () +endmacro(getenv_path) + +# Construct search paths for includes and libraries from a PREFIX_PATH +macro(create_search_paths PREFIX) + foreach(dir ${${PREFIX}_PREFIX_PATH}) + set(${PREFIX}_INC_SEARCH_PATH ${${PREFIX}_INC_SEARCH_PATH} + ${dir}/include ${dir}/include/${PREFIX} ${dir}/Headers) + set(${PREFIX}_LIB_SEARCH_PATH ${${PREFIX}_LIB_SEARCH_PATH} + ${dir}/lib ${dir}/lib/${PREFIX} ${dir}/Libs) + endforeach(dir) + set(${PREFIX}_FRAMEWORK_SEARCH_PATH ${${PREFIX}_PREFIX_PATH}) +endmacro(create_search_paths) + +# clear cache variables if a certain variable changed +macro(clear_if_changed TESTVAR) + # test against internal check variable + if (NOT "${${TESTVAR}}" STREQUAL "${${TESTVAR}_INT_CHECK}") + message(STATUS "${TESTVAR} changed.") + foreach(var ${ARGN}) + set(${var} "NOTFOUND" CACHE STRING "x" FORCE) + endforeach(var) + endif () + set(${TESTVAR}_INT_CHECK ${${TESTVAR}} CACHE INTERNAL "x" FORCE) +endmacro(clear_if_changed) + +# Try to get some hints from pkg-config, if available +macro(use_pkgconfig PREFIX PKGNAME) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(${PREFIX} ${PKGNAME}) + endif () +endmacro (use_pkgconfig) + +# Couple a set of release AND debug libraries (or frameworks) +macro(make_library_set PREFIX) + if (${PREFIX}_FWK) + set(${PREFIX} ${${PREFIX}_FWK}) + elseif (${PREFIX}_REL AND ${PREFIX}_DBG) + set(${PREFIX} optimized ${${PREFIX}_REL} debug ${${PREFIX}_DBG}) + elseif (${PREFIX}_REL) + set(${PREFIX} ${${PREFIX}_REL}) + elseif (${PREFIX}_DBG) + set(${PREFIX} ${${PREFIX}_DBG}) + endif () +endmacro(make_library_set) + +# Generate debug names from given release names +macro(get_debug_names PREFIX) + foreach(i ${${PREFIX}}) + set(${PREFIX}_DBG ${${PREFIX}_DBG} ${i}d ${i}D ${i}_d ${i}_D ${i}_debug ${i}) + endforeach(i) +endmacro(get_debug_names) + +# Add the parent dir from DIR to VAR +macro(add_parent_dir VAR DIR) + get_filename_component(${DIR}_TEMP "${${DIR}}/.." ABSOLUTE) + set(${VAR} ${${VAR}} ${${DIR}_TEMP}) +endmacro(add_parent_dir) + +# Do the final processing for the package find. +macro(findpkg_finish PREFIX) + # skip if already processed during this run + if (NOT ${PREFIX}_FOUND) + if (${PREFIX}_INCLUDE_DIR AND ${PREFIX}_LIBRARY) + set(${PREFIX}_FOUND TRUE) + set(${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIR}) + set(${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARY}) + if (NOT ${PREFIX}_FIND_QUIETLY) + message(STATUS "Found ${PREFIX}: ${${PREFIX}_LIBRARIES}") + endif () + else () + if (NOT ${PREFIX}_FIND_QUIETLY) + message(STATUS "Could not locate ${PREFIX}") + endif () + if (${PREFIX}_FIND_REQUIRED) + message(FATAL_ERROR "Required library ${PREFIX} not found! Install the library (including dev packages) and try again. If the library is already installed, set the missing variables manually in cmake.") + endif () + endif () + + mark_as_advanced(${PREFIX}_INCLUDE_DIR ${PREFIX}_LIBRARY ${PREFIX}_LIBRARY_REL ${PREFIX}_LIBRARY_DBG ${PREFIX}_LIBRARY_FWK) + endif () +endmacro(findpkg_finish) + + +# Slightly customised framework finder +MACRO(findpkg_framework fwk) + IF(APPLE) + SET(${fwk}_FRAMEWORK_PATH + ${${fwk}_FRAMEWORK_SEARCH_PATH} + ${CMAKE_FRAMEWORK_PATH} + ~/Library/Frameworks + /Library/Frameworks + /System/Library/Frameworks + /Network/Library/Frameworks + /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks/ + ) + FOREACH(dir ${${fwk}_FRAMEWORK_PATH}) + SET(fwkpath ${dir}/${fwk}.framework) + IF(EXISTS ${fwkpath}) + SET(${fwk}_FRAMEWORK_INCLUDES ${${fwk}_FRAMEWORK_INCLUDES} + ${fwkpath}/Headers ${fwkpath}/PrivateHeaders) + if (NOT ${fwk}_LIBRARY_FWK) + SET(${fwk}_LIBRARY_FWK "-framework ${fwk}") + endif () + ENDIF(EXISTS ${fwkpath}) + ENDFOREACH(dir) + ENDIF(APPLE) +ENDMACRO(findpkg_framework) diff --git a/cmake-modules/FindZLIB.cmake b/cmake-modules/FindZLIB.cmake index c1e20016b..f6806b4ee 100644 --- a/cmake-modules/FindZLIB.cmake +++ b/cmake-modules/FindZLIB.cmake @@ -1,48 +1,48 @@ -#------------------------------------------------------------------- -# This file is part of the CMake build system for OGRE -# (Object-oriented Graphics Rendering Engine) -# For the latest info, see http://www.ogre3d.org/ -# -# The contents of this file are placed in the public domain. Feel -# free to make use of it in any way you like. -#------------------------------------------------------------------- - -# - Try to find ZLIB -# Once done, this will define -# -# ZLIB_FOUND - system has ZLIB -# ZLIB_INCLUDE_DIRS - the ZLIB include directories -# ZLIB_LIBRARIES - link these to use ZLIB - -include(FindPkgMacros) -findpkg_begin(ZLIB) - -# Get path, convert backslashes as ${ENV_${var}} -getenv_path(ZLIB_HOME) - -# construct search paths -set(ZLIB_PREFIX_PATH ${ZLIB_HOME} ${ENV_ZLIB_HOME}) -create_search_paths(ZLIB) -# redo search if prefix path changed -clear_if_changed(ZLIB_PREFIX_PATH - ZLIB_LIBRARY_FWK - ZLIB_LIBRARY_REL - ZLIB_LIBRARY_DBG - ZLIB_INCLUDE_DIR -) - -set(ZLIB_LIBRARY_NAMES z zlib zdll) -get_debug_names(ZLIB_LIBRARY_NAMES) - -use_pkgconfig(ZLIB_PKGC zzip-zlib-config) - -findpkg_framework(ZLIB) - -find_path(ZLIB_INCLUDE_DIR NAMES zlib.h HINTS ${ZLIB_INC_SEARCH_PATH} ${ZLIB_PKGC_INCLUDE_DIRS}) -find_library(ZLIB_LIBRARY_REL NAMES ${ZLIB_LIBRARY_NAMES} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel) -find_library(ZLIB_LIBRARY_DBG NAMES ${ZLIB_LIBRARY_NAMES_DBG} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug) - -make_library_set(ZLIB_LIBRARY) - -findpkg_finish(ZLIB) - +#------------------------------------------------------------------- +# This file is part of the CMake build system for OGRE +# (Object-oriented Graphics Rendering Engine) +# For the latest info, see http://www.ogre3d.org/ +# +# The contents of this file are placed in the public domain. Feel +# free to make use of it in any way you like. +#------------------------------------------------------------------- + +# - Try to find ZLIB +# Once done, this will define +# +# ZLIB_FOUND - system has ZLIB +# ZLIB_INCLUDE_DIRS - the ZLIB include directories +# ZLIB_LIBRARIES - link these to use ZLIB + +include(FindPkgMacros) +findpkg_begin(ZLIB) + +# Get path, convert backslashes as ${ENV_${var}} +getenv_path(ZLIB_HOME) + +# construct search paths +set(ZLIB_PREFIX_PATH ${ZLIB_HOME} ${ENV_ZLIB_HOME}) +create_search_paths(ZLIB) +# redo search if prefix path changed +clear_if_changed(ZLIB_PREFIX_PATH + ZLIB_LIBRARY_FWK + ZLIB_LIBRARY_REL + ZLIB_LIBRARY_DBG + ZLIB_INCLUDE_DIR +) + +set(ZLIB_LIBRARY_NAMES z zlib zdll) +get_debug_names(ZLIB_LIBRARY_NAMES) + +use_pkgconfig(ZLIB_PKGC zzip-zlib-config) + +findpkg_framework(ZLIB) + +find_path(ZLIB_INCLUDE_DIR NAMES zlib.h HINTS ${ZLIB_INC_SEARCH_PATH} ${ZLIB_PKGC_INCLUDE_DIRS}) +find_library(ZLIB_LIBRARY_REL NAMES ${ZLIB_LIBRARY_NAMES} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel) +find_library(ZLIB_LIBRARY_DBG NAMES ${ZLIB_LIBRARY_NAMES_DBG} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug) + +make_library_set(ZLIB_LIBRARY) + +findpkg_finish(ZLIB) + diff --git a/cmake-modules/Findassimp.cmake b/cmake-modules/Findassimp.cmake index 300c631e7..971b49d5e 100644 --- a/cmake-modules/Findassimp.cmake +++ b/cmake-modules/Findassimp.cmake @@ -1,25 +1,25 @@ FIND_PATH( - assimp_INCLUDE_DIRS - NAMES postprocess.h scene.h version.h config.h cimport.h - PATHS /usr/local/include/ + assimp_INCLUDE_DIRS + NAMES postprocess.h scene.h version.h config.h cimport.h + PATHS /usr/local/include/ ) FIND_LIBRARY( - assimp_LIBRARIES - NAMES assimp - PATHS /usr/local/lib/ + assimp_LIBRARIES + NAMES assimp + PATHS /usr/local/lib/ ) IF (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) - SET(assimp_FOUND TRUE) + SET(assimp_FOUND TRUE) ENDIF (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) IF (assimp_FOUND) - IF (NOT assimp_FIND_QUIETLY) - MESSAGE(STATUS "Found asset importer library: ${assimp_LIBRARIES}") - ENDIF (NOT assimp_FIND_QUIETLY) + IF (NOT assimp_FIND_QUIETLY) + MESSAGE(STATUS "Found asset importer library: ${assimp_LIBRARIES}") + ENDIF (NOT assimp_FIND_QUIETLY) ELSE (assimp_FOUND) - IF (assimp_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find asset importer library") - ENDIF (assimp_FIND_REQUIRED) + IF (assimp_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find asset importer library") + ENDIF (assimp_FIND_REQUIRED) ENDIF (assimp_FOUND) diff --git a/cmake-modules/PrecompiledHeader.cmake b/cmake-modules/PrecompiledHeader.cmake index 99c43a3cb..6af7866f5 100644 --- a/cmake-modules/PrecompiledHeader.cmake +++ b/cmake-modules/PrecompiledHeader.cmake @@ -5,21 +5,21 @@ MACRO(ADD_MSVC_PRECOMPILED_HEADER PrecompiledHeader PrecompiledSource SourcesVar SET(Sources ${${SourcesVar}}) SET_SOURCE_FILES_PROPERTIES(${PrecompiledSource} - PROPERTIES COMPILE_FLAGS "/Yc\"${PrecompiledHeader}\" /Fp\"${PrecompiledBinary}\"" - OBJECT_OUTPUTS "${PrecompiledBinary}") - - # Do not consider .c files - foreach(fname ${Sources}) - GET_FILENAME_COMPONENT(fext ${fname} EXT) - if(fext STREQUAL ".cpp") - SET_SOURCE_FILES_PROPERTIES(${fname} - PROPERTIES COMPILE_FLAGS "/Yu\"${PrecompiledBinary}\" /FI\"${PrecompiledBinary}\" /Fp\"${PrecompiledBinary}\"" - OBJECT_DEPENDS "${PrecompiledBinary}") - endif(fext STREQUAL ".cpp") - endforeach(fname) - + PROPERTIES COMPILE_FLAGS "/Yc\"${PrecompiledHeader}\" /Fp\"${PrecompiledBinary}\"" + OBJECT_OUTPUTS "${PrecompiledBinary}") + + # Do not consider .c files + foreach(fname ${Sources}) + GET_FILENAME_COMPONENT(fext ${fname} EXT) + if(fext STREQUAL ".cpp") + SET_SOURCE_FILES_PROPERTIES(${fname} + PROPERTIES COMPILE_FLAGS "/Yu\"${PrecompiledBinary}\" /FI\"${PrecompiledBinary}\" /Fp\"${PrecompiledBinary}\"" + OBJECT_DEPENDS "${PrecompiledBinary}") + endif(fext STREQUAL ".cpp") + endforeach(fname) + ENDIF(MSVC) # Add precompiled header to SourcesVar LIST(APPEND ${SourcesVar} ${PrecompiledSource}) - -ENDMACRO(ADD_MSVC_PRECOMPILED_HEADER) \ No newline at end of file + +ENDMACRO(ADD_MSVC_PRECOMPILED_HEADER) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 339ce5d69..889a4fb33 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -1,781 +1,781 @@ -# Listing and grouping of all the source files. -# 1) Set the file lists for each component -# 2) Create a Source Group for each component, for IDE project orginization -# 3) Add libassimp using the file lists (eliminates duplication of file names between -# source groups and library command) -# -cmake_minimum_required( VERSION 2.6 ) -SET( HEADER_PATH ../include/assimp ) - -SET( COMPILER_HEADERS - ${HEADER_PATH}/Compiler/pushpack1.h - ${HEADER_PATH}/Compiler/poppack1.h - ${HEADER_PATH}/Compiler/pstdint.h -) -SOURCE_GROUP( Compiler FILES ${COMPILER_HEADERS}) - -SET( PUBLIC_HEADERS - ${HEADER_PATH}/anim.h - ${HEADER_PATH}/ai_assert.h - ${HEADER_PATH}/camera.h - ${HEADER_PATH}/color4.h - ${HEADER_PATH}/color4.inl - ${HEADER_PATH}/config.h - ${HEADER_PATH}/defs.h - ${HEADER_PATH}/cfileio.h - ${HEADER_PATH}/light.h - ${HEADER_PATH}/material.h - ${HEADER_PATH}/material.inl - ${HEADER_PATH}/matrix3x3.h - ${HEADER_PATH}/matrix3x3.inl - ${HEADER_PATH}/matrix4x4.h - ${HEADER_PATH}/matrix4x4.inl - ${HEADER_PATH}/mesh.h - ${HEADER_PATH}/postprocess.h - ${HEADER_PATH}/quaternion.h - ${HEADER_PATH}/quaternion.inl - ${HEADER_PATH}/scene.h - ${HEADER_PATH}/metadata.h - ${HEADER_PATH}/texture.h - ${HEADER_PATH}/types.h - ${HEADER_PATH}/vector2.h - ${HEADER_PATH}/vector2.inl - ${HEADER_PATH}/vector3.h - ${HEADER_PATH}/vector3.inl - ${HEADER_PATH}/version.h - ${HEADER_PATH}/cimport.h - ${HEADER_PATH}/importerdesc.h - ${HEADER_PATH}/Importer.hpp - ${HEADER_PATH}/DefaultLogger.hpp - ${HEADER_PATH}/ProgressHandler.hpp - ${HEADER_PATH}/IOStream.hpp - ${HEADER_PATH}/IOSystem.hpp - ${HEADER_PATH}/Logger.hpp - ${HEADER_PATH}/LogStream.hpp - ${HEADER_PATH}/NullLogger.hpp - ${HEADER_PATH}/cexport.h - ${HEADER_PATH}/Exporter.hpp -) - -SET( Core_SRCS - Assimp.cpp -) - -SET( Boost_SRCS - BoostWorkaround/boost/math/common_factor_rt.hpp - BoostWorkaround/boost/foreach.hpp - BoostWorkaround/boost/format.hpp - BoostWorkaround/boost/scoped_array.hpp - BoostWorkaround/boost/scoped_ptr.hpp - BoostWorkaround/boost/shared_array.hpp - BoostWorkaround/boost/shared_ptr.hpp - BoostWorkaround/boost/make_shared.hpp - BoostWorkaround/boost/static_assert.hpp - BoostWorkaround/boost/tuple/tuple.hpp -) -SOURCE_GROUP(Boost FILES ${Boost_SRCS}) - -SET( Logging_SRCS - ${HEADER_PATH}/DefaultLogger.hpp - ${HEADER_PATH}/LogStream.hpp - ${HEADER_PATH}/Logger.hpp - ${HEADER_PATH}/NullLogger.hpp - Win32DebugLogStream.h - DefaultLogger.cpp - FileLogStream.h - StdOStreamLogStream.h -) -SOURCE_GROUP(Logging FILES ${Logging_SRCS}) - -SET( Common_SRCS - fast_atof.h - qnan.h - BaseImporter.cpp - BaseImporter.h - BaseProcess.cpp - BaseProcess.h - Importer.h - ScenePrivate.h - PostStepRegistry.cpp - ImporterRegistry.cpp - ByteSwapper.h - DefaultProgressHandler.h - DefaultIOStream.cpp - DefaultIOStream.h - DefaultIOSystem.cpp - DefaultIOSystem.h - CInterfaceIOWrapper.h - Hash.h - Importer.cpp - IFF.h - MemoryIOWrapper.h - ParsingUtils.h - StreamReader.h - StreamWriter.h - StringComparison.h - SGSpatialSort.cpp - SGSpatialSort.h - VertexTriangleAdjacency.cpp - VertexTriangleAdjacency.h - GenericProperty.h - SpatialSort.cpp - SpatialSort.h - SceneCombiner.cpp - SceneCombiner.h - ScenePreprocessor.cpp - ScenePreprocessor.h - SkeletonMeshBuilder.cpp - SkeletonMeshBuilder.h - SplitByBoneCountProcess.cpp - SplitByBoneCountProcess.h - SmoothingGroups.h - StandardShapes.cpp - StandardShapes.h - TargetAnimation.cpp - TargetAnimation.h - RemoveComments.cpp - RemoveComments.h - Subdivision.cpp - Subdivision.h - Vertex.h - LineSplitter.h - TinyFormatter.h - Profiler.h - LogAux.h - Bitmap.cpp - Bitmap.h - XMLTools.h - Version.cpp -) -SOURCE_GROUP(Common FILES ${Common_SRCS}) - -IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) - SET( C4D_SRCS - C4DImporter.cpp - C4DImporter.h - ) - SOURCE_GROUP( C4D FILES ${C4D_SRCS}) -ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) - -# macro to add the CMake Option ADD_ASSIMP_IMPORTER_ which enables compile of loader -# this way selective loaders can be compiled (reduces filesize + compile time) -MACRO(ADD_ASSIMP_IMPORTER name) - OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" TRUE) - IF(ASSIMP_BUILD_${name}_IMPORTER) - LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN}) - SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}") - SET(${name}_SRCS ${ARGN}) - SOURCE_GROUP(${name} FILES ${ARGN}) - ELSE() - SET(${name}_SRC "") - SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}") - add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER) - ENDIF() -ENDMACRO() - -SET(ASSIMP_LOADER_SRCS "") -SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers -SET(ASSIMP_IMPORTERS_DISABLED "") # disabled list (used to print) - -ADD_ASSIMP_IMPORTER(3DS - 3DSConverter.cpp - 3DSHelper.h - 3DSLoader.cpp - 3DSLoader.h - 3DSExporter.h - 3DSExporter.cpp -) - -ADD_ASSIMP_IMPORTER(AC - ACLoader.cpp - ACLoader.h -) - -ADD_ASSIMP_IMPORTER(ASE - ASELoader.cpp - ASELoader.h - ASEParser.cpp - ASEParser.h -) - -ADD_ASSIMP_IMPORTER(ASSBIN - AssbinExporter.h - AssbinExporter.cpp - AssbinLoader.h - AssbinLoader.cpp -) - -ADD_ASSIMP_IMPORTER(ASSXML - AssxmlExporter.h - AssxmlExporter.cpp -) - -ADD_ASSIMP_IMPORTER(B3D - B3DImporter.cpp - B3DImporter.h -) - -ADD_ASSIMP_IMPORTER(BVH - BVHLoader.cpp - BVHLoader.h -) - -ADD_ASSIMP_IMPORTER(COLLADA - ColladaHelper.h - ColladaLoader.cpp - ColladaLoader.h - ColladaParser.cpp - ColladaParser.h - ColladaExporter.h - ColladaExporter.cpp -) - -ADD_ASSIMP_IMPORTER(DXF - DXFLoader.cpp - DXFLoader.h - DXFHelper.h -) - -ADD_ASSIMP_IMPORTER(CSM - CSMLoader.cpp - CSMLoader.h -) - -ADD_ASSIMP_IMPORTER(HMP - HMPFileData.h - HMPLoader.cpp - HMPLoader.h - HalfLifeFileData.h -) - -#FIXME: allow to set IRRMESH by option -ADD_ASSIMP_IMPORTER(IRR - IRRLoader.cpp - IRRLoader.h - IRRMeshLoader.cpp - IRRMeshLoader.h - IRRShared.cpp - IRRShared.h -) - -ADD_ASSIMP_IMPORTER(LWO - LWOAnimation.cpp - LWOAnimation.h - LWOBLoader.cpp - LWOFileData.h - LWOLoader.cpp - LWOLoader.h - LWOMaterial.cpp -) - -ADD_ASSIMP_IMPORTER(LWS - LWSLoader.cpp - LWSLoader.h -) - -ADD_ASSIMP_IMPORTER(MD2 - MD2FileData.h - MD2Loader.cpp - MD2Loader.h - MD2NormalTable.h -) - -ADD_ASSIMP_IMPORTER(MD3 - MD3FileData.h - MD3Loader.cpp - MD3Loader.h -) - -ADD_ASSIMP_IMPORTER(MD5 - MD5Loader.cpp - MD5Loader.h - MD5Parser.cpp - MD5Parser.h -) - -ADD_ASSIMP_IMPORTER(MDC - MDCFileData.h - MDCLoader.cpp - MDCLoader.h - MDCNormalTable.h -) - -ADD_ASSIMP_IMPORTER(MDL - MDLDefaultColorMap.h - MDLFileData.h - MDLLoader.cpp - MDLLoader.h - MDLMaterialLoader.cpp -) - -SET( MaterialSystem_SRCS - MaterialSystem.cpp - MaterialSystem.h -) -SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS}) - -ADD_ASSIMP_IMPORTER(NFF - NFFLoader.cpp - NFFLoader.h -) - -ADD_ASSIMP_IMPORTER(NDO - NDOLoader.cpp - NDOLoader.h -) - -ADD_ASSIMP_IMPORTER(OFF - OFFLoader.cpp - OFFLoader.h -) - -ADD_ASSIMP_IMPORTER(OBJ - ObjFileData.h - ObjFileImporter.cpp - ObjFileImporter.h - ObjFileMtlImporter.cpp - ObjFileMtlImporter.h - ObjFileParser.cpp - ObjFileParser.h - ObjTools.h - - ObjExporter.h - ObjExporter.cpp -) - -ADD_ASSIMP_IMPORTER(OGRE - OgreImporter.h - OgreStructs.h - OgreParsingUtils.h - OgreBinarySerializer.h - OgreXmlSerializer.h - OgreImporter.cpp - OgreStructs.cpp - OgreBinarySerializer.cpp - OgreXmlSerializer.cpp - OgreMaterial.cpp -) - -ADD_ASSIMP_IMPORTER(OPENGEX - OpenGEXImporter.cpp - OpenGEXImporter.h - OpenGEXStructs.h -) - -ADD_ASSIMP_IMPORTER(PLY - PlyLoader.cpp - PlyLoader.h - PlyParser.cpp - PlyParser.h - PlyExporter.cpp - PlyExporter.h -) - -ADD_ASSIMP_IMPORTER(MS3D - MS3DLoader.cpp - MS3DLoader.h -) - -ADD_ASSIMP_IMPORTER(COB - COBLoader.cpp - COBLoader.h - COBScene.h -) - -ADD_ASSIMP_IMPORTER(BLEND - BlenderLoader.cpp - BlenderLoader.h - BlenderDNA.cpp - BlenderDNA.h - BlenderDNA.inl - BlenderScene.cpp - BlenderScene.h - BlenderSceneGen.h - BlenderIntermediate.h - BlenderModifier.h - BlenderModifier.cpp - BlenderBMesh.h - BlenderBMesh.cpp - BlenderTessellator.h - BlenderTessellator.cpp -) - -ADD_ASSIMP_IMPORTER(IFC - IFCLoader.cpp - IFCLoader.h - IFCReaderGen.cpp - IFCReaderGen.h - IFCUtil.h - IFCUtil.cpp - IFCGeometry.cpp - IFCMaterial.cpp - IFCProfile.cpp - IFCCurve.cpp - IFCBoolean.cpp - IFCOpenings.cpp - STEPFile.h - STEPFileReader.h - STEPFileReader.cpp - STEPFileEncoding.cpp - STEPFileEncoding.h -) - -ADD_ASSIMP_IMPORTER(XGL - XGLLoader.cpp - XGLLoader.h -) - - -ADD_ASSIMP_IMPORTER(FBX - FBXImporter.cpp - FBXCompileConfig.h - FBXImporter.h - FBXParser.cpp - FBXParser.h - FBXTokenizer.cpp - FBXTokenizer.h - FBXImportSettings.h - FBXConverter.h - FBXConverter.cpp - FBXUtil.h - FBXUtil.cpp - FBXDocument.h - FBXDocument.cpp - FBXProperties.h - FBXProperties.cpp - FBXMeshGeometry.cpp - FBXMaterial.cpp - FBXModel.cpp - FBXAnimation.cpp - FBXNodeAttribute.cpp - FBXDeformer.cpp - FBXBinaryTokenizer.cpp - FBXDocumentUtil.cpp -) - -SET( PostProcessing_SRCS - CalcTangentsProcess.cpp - CalcTangentsProcess.h - ComputeUVMappingProcess.cpp - ComputeUVMappingProcess.h - ConvertToLHProcess.cpp - ConvertToLHProcess.h - FindDegenerates.cpp - FindDegenerates.h - FindInstancesProcess.cpp - FindInstancesProcess.h - FindInvalidDataProcess.cpp - FindInvalidDataProcess.h - FixNormalsStep.cpp - FixNormalsStep.h - GenFaceNormalsProcess.cpp - GenFaceNormalsProcess.h - GenVertexNormalsProcess.cpp - GenVertexNormalsProcess.h - PretransformVertices.cpp - PretransformVertices.h - ImproveCacheLocality.cpp - ImproveCacheLocality.h - JoinVerticesProcess.cpp - JoinVerticesProcess.h - LimitBoneWeightsProcess.cpp - LimitBoneWeightsProcess.h - RemoveRedundantMaterials.cpp - RemoveRedundantMaterials.h - RemoveVCProcess.cpp - RemoveVCProcess.h - SortByPTypeProcess.cpp - SortByPTypeProcess.h - SplitLargeMeshes.cpp - SplitLargeMeshes.h - TextureTransform.cpp - TextureTransform.h - TriangulateProcess.cpp - TriangulateProcess.h - ValidateDataStructure.cpp - ValidateDataStructure.h - OptimizeGraph.cpp - OptimizeGraph.h - OptimizeMeshes.cpp - OptimizeMeshes.h - DeboneProcess.cpp - DeboneProcess.h - ProcessHelper.h - ProcessHelper.cpp - PolyTools.h - MakeVerboseFormat.cpp - MakeVerboseFormat.h -) -SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS}) - -ADD_ASSIMP_IMPORTER(Q3D - Q3DLoader.cpp - Q3DLoader.h -) - -ADD_ASSIMP_IMPORTER(Q3BSP - Q3BSPFileData.h - Q3BSPFileParser.h - Q3BSPFileParser.cpp - Q3BSPFileImporter.h - Q3BSPFileImporter.cpp - Q3BSPZipArchive.h - Q3BSPZipArchive.cpp -) - -ADD_ASSIMP_IMPORTER(RAW - RawLoader.cpp - RawLoader.h -) - -ADD_ASSIMP_IMPORTER(SMD - SMDLoader.cpp - SMDLoader.h -) - -ADD_ASSIMP_IMPORTER(STL - STLLoader.cpp - STLLoader.h - STLExporter.h - STLExporter.cpp -) - -ADD_ASSIMP_IMPORTER(TERRAGEN - TerragenLoader.cpp - TerragenLoader.h -) - -ADD_ASSIMP_IMPORTER(3D - UnrealLoader.cpp - UnrealLoader.h -) - -ADD_ASSIMP_IMPORTER(X - XFileHelper.h - XFileImporter.cpp - XFileImporter.h - XFileParser.cpp - XFileParser.h - XFileExporter.h - XFileExporter.cpp -) - -SET( Step_SRCS - StepExporter.h - StepExporter.cpp -) -SOURCE_GROUP( Step FILES ${Step_SRCS}) - -SET( Exporter_SRCS - Exporter.cpp - AssimpCExport.cpp - BlobIOSystem.h -) -SOURCE_GROUP( Exporter FILES ${Exporter_SRCS}) - -SET( Extra_SRCS - MD4FileData.h -) -SOURCE_GROUP( Extra FILES ${Extra_SRCS}) - -SET( IrrXML_SRCS - irrXMLWrapper.h - ../contrib/irrXML/CXMLReaderImpl.h - ../contrib/irrXML/heapsort.h - ../contrib/irrXML/irrArray.h - ../contrib/irrXML/irrString.h - ../contrib/irrXML/irrTypes.h - ../contrib/irrXML/irrXML.cpp - ../contrib/irrXML/irrXML.h -) -SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS}) - -SET( ConvertUTF_SRCS - ../contrib/ConvertUTF/ConvertUTF.h - ../contrib/ConvertUTF/ConvertUTF.c -) -SOURCE_GROUP( ConvertUTF FILES ${ConvertUTF_SRCS}) - -SET( Clipper_SRCS - ../contrib/clipper/clipper.hpp - ../contrib/clipper/clipper.cpp -) -SOURCE_GROUP( Clipper FILES ${Clipper_SRCS}) - - -SET( Poly2Tri_SRCS - ../contrib/poly2tri/poly2tri/common/shapes.cc - ../contrib/poly2tri/poly2tri/common/shapes.h - ../contrib/poly2tri/poly2tri/common/utils.h - ../contrib/poly2tri/poly2tri/sweep/advancing_front.h - ../contrib/poly2tri/poly2tri/sweep/advancing_front.cc - ../contrib/poly2tri/poly2tri/sweep/cdt.cc - ../contrib/poly2tri/poly2tri/sweep/cdt.h - ../contrib/poly2tri/poly2tri/sweep/sweep.cc - ../contrib/poly2tri/poly2tri/sweep/sweep.h - ../contrib/poly2tri/poly2tri/sweep/sweep_context.cc - ../contrib/poly2tri/poly2tri/sweep/sweep_context.h -) -SOURCE_GROUP( Poly2Tri FILES ${Poly2Tri_SRCS}) - -SET( unzip_SRCS - ../contrib/unzip/crypt.h - ../contrib/unzip/ioapi.c - ../contrib/unzip/ioapi.h - ../contrib/unzip/unzip.c - ../contrib/unzip/unzip.h -) -SOURCE_GROUP( unzip FILES ${unzip_SRCS}) - -SET ( openddl_parser_SRCS - ../contrib/openddlparser/code/OpenDDLParser.cpp - ../contrib/openddlparser/code/DDLNode.cpp - ../contrib/openddlparser/code/Value.cpp - ../contrib/openddlparser/include/openddlparser/OpenDDLParser.h - ../contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h - ../contrib/openddlparser/include/openddlparser/OpenDDLCommon.h - ../contrib/openddlparser/include/openddlparser/DDLNode.h - ../contrib/openddlparser/include/openddlparser/Value.h -) -SOURCE_GROUP( openddl_parser FILES ${openddl_parser_SRCS}) - -# VC2010 fixes -if(MSVC10) - option( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF ) - if( VC10_STDINT_FIX ) - ADD_DEFINITIONS( -D_STDINT ) - endif( VC10_STDINT_FIX ) -endif(MSVC10) - -ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT ) - -if ( MSVC ) - ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) - ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS ) -endif ( MSVC ) - -if (UNZIP_FOUND) - SET (unzip_compile_SRCS "") -else (UNZIP_FOUND) - SET (unzip_compile_SRCS ${unzip_SRCS}) -endif (UNZIP_FOUND) - -MESSAGE(STATUS "Enabled formats:${ASSIMP_IMPORTERS_ENABLED}") -MESSAGE(STATUS "Disabled formats:${ASSIMP_IMPORTERS_DISABLED}") - -SET( assimp_src - # Assimp Files - ${Core_SRCS} - ${Common_SRCS} - ${Logging_SRCS} - ${Exporter_SRCS} - ${PostProcessing_SRCS} - ${MaterialSystem_SRCS} - ${Step_SRCS} - - # Model Support - ${ASSIMP_LOADER_SRCS} - - # Third-party libraries - ${IrrXML_SRCS} - ${ConvertUTF_SRCS} - ${unzip_compile_SRCS} - ${Poly2Tri_SRCS} - ${Clipper_SRCS} - ${openddl_parser_SRCS} - # Necessary to show the headers in the project when using the VC++ generator: - ${Boost_SRCS} - - ${PUBLIC_HEADERS} - ${COMPILER_HEADERS} - -) -add_definitions( -DOPENDDLPARSER_BUILD ) - -INCLUDE_DIRECTORIES( - ../contrib/openddlparser/include -) - -IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - SET( assimp_src ${assimp_src} ${C4D_SRCS}) - INCLUDE_DIRECTORIES(${C4D_INCLUDES}) -ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - -ADD_LIBRARY( assimp ${assimp_src} ) - -TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES} ) - -if(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) - set(ASSIMP_ANDROID_JNIIOSYSTEM_PATH port/AndroidJNI) - add_subdirectory(../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/ ../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/) - target_link_libraries(assimp android_jniiosystem) -endif(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) - -IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - TARGET_LINK_LIBRARIES(assimp optimized ${C4D_RELEASE_LIBRARY}) - TARGET_LINK_LIBRARIES(assimp debug ${C4D_DEBUG_LIBRARY}) - TARGET_LINK_LIBRARIES(assimp ${C4D_EXTRA_LIBRARIES}) -ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - -if( MSVC ) - # in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix - if( MSVC70 OR MSVC71 ) - set(MSVC_PREFIX "vc70") - elseif( MSVC80 ) - set(MSVC_PREFIX "vc80") - elseif( MSVC90 ) - set(MSVC_PREFIX "vc90") - elseif( MSVC10 ) - set(MSVC_PREFIX "vc100") - elseif( MSVC11 ) - set(MSVC_PREFIX "vc110") - elseif( MSVC12 ) - set(MSVC_PREFIX "vc120") - else() - set(MSVC_PREFIX "vc130") - endif() - set(LIBRARY_SUFFIX "${ASSIMP_LIBRARY_SUFFIX}-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library") -endif() - -SET_TARGET_PROPERTIES( assimp PROPERTIES - VERSION ${ASSIMP_VERSION} - SOVERSION ${ASSIMP_SOVERSION} # use full version - OUTPUT_NAME assimp${LIBRARY_SUFFIX} -) - -if (APPLE) - SET_TARGET_PROPERTIES( assimp PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}") -endif() - -# Build against external unzip, or add ../contrib/unzip so -# assimp can #include "unzip.h" -if (UNZIP_FOUND) - INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS}) - TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES}) -else (UNZIP_FOUND) - INCLUDE_DIRECTORIES("../contrib/unzip") -endif (UNZIP_FOUND) - -INSTALL( TARGETS assimp - LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR} - ARCHIVE DESTINATION ${ASSIMP_LIB_INSTALL_DIR} - RUNTIME DESTINATION ${ASSIMP_BIN_INSTALL_DIR} - COMPONENT ${LIBASSIMP_COMPONENT}) -INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev) -INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev) -if (ASSIMP_ANDROID_JNIIOSYSTEM) - INSTALL(FILES ${HEADER_PATH}/../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/AndroidJNIIOSystem.h - DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR} - COMPONENT assimp-dev) -endif(ASSIMP_ANDROID_JNIIOSYSTEM) - -if(MSVC AND ASSIMP_INSTALL_PDB) - install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${CMAKE_DEBUG_POSTFIX}.pdb - DESTINATION ${ASSIMP_LIB_INSTALL_DIR} - CONFIGURATIONS Debug - ) - install(FILES ${Assimp_BINARY_DIR}/code/RelWithDebInfo/assimp.pdb - DESTINATION ${ASSIMP_LIB_INSTALL_DIR} - CONFIGURATIONS RelWithDebInfo - ) -endif () +# Listing and grouping of all the source files. +# 1) Set the file lists for each component +# 2) Create a Source Group for each component, for IDE project orginization +# 3) Add libassimp using the file lists (eliminates duplication of file names between +# source groups and library command) +# +cmake_minimum_required( VERSION 2.6 ) +SET( HEADER_PATH ../include/assimp ) + +SET( COMPILER_HEADERS + ${HEADER_PATH}/Compiler/pushpack1.h + ${HEADER_PATH}/Compiler/poppack1.h + ${HEADER_PATH}/Compiler/pstdint.h +) +SOURCE_GROUP( Compiler FILES ${COMPILER_HEADERS}) + +SET( PUBLIC_HEADERS + ${HEADER_PATH}/anim.h + ${HEADER_PATH}/ai_assert.h + ${HEADER_PATH}/camera.h + ${HEADER_PATH}/color4.h + ${HEADER_PATH}/color4.inl + ${HEADER_PATH}/config.h + ${HEADER_PATH}/defs.h + ${HEADER_PATH}/cfileio.h + ${HEADER_PATH}/light.h + ${HEADER_PATH}/material.h + ${HEADER_PATH}/material.inl + ${HEADER_PATH}/matrix3x3.h + ${HEADER_PATH}/matrix3x3.inl + ${HEADER_PATH}/matrix4x4.h + ${HEADER_PATH}/matrix4x4.inl + ${HEADER_PATH}/mesh.h + ${HEADER_PATH}/postprocess.h + ${HEADER_PATH}/quaternion.h + ${HEADER_PATH}/quaternion.inl + ${HEADER_PATH}/scene.h + ${HEADER_PATH}/metadata.h + ${HEADER_PATH}/texture.h + ${HEADER_PATH}/types.h + ${HEADER_PATH}/vector2.h + ${HEADER_PATH}/vector2.inl + ${HEADER_PATH}/vector3.h + ${HEADER_PATH}/vector3.inl + ${HEADER_PATH}/version.h + ${HEADER_PATH}/cimport.h + ${HEADER_PATH}/importerdesc.h + ${HEADER_PATH}/Importer.hpp + ${HEADER_PATH}/DefaultLogger.hpp + ${HEADER_PATH}/ProgressHandler.hpp + ${HEADER_PATH}/IOStream.hpp + ${HEADER_PATH}/IOSystem.hpp + ${HEADER_PATH}/Logger.hpp + ${HEADER_PATH}/LogStream.hpp + ${HEADER_PATH}/NullLogger.hpp + ${HEADER_PATH}/cexport.h + ${HEADER_PATH}/Exporter.hpp +) + +SET( Core_SRCS + Assimp.cpp +) + +SET( Boost_SRCS + BoostWorkaround/boost/math/common_factor_rt.hpp + BoostWorkaround/boost/foreach.hpp + BoostWorkaround/boost/format.hpp + BoostWorkaround/boost/scoped_array.hpp + BoostWorkaround/boost/scoped_ptr.hpp + BoostWorkaround/boost/shared_array.hpp + BoostWorkaround/boost/shared_ptr.hpp + BoostWorkaround/boost/make_shared.hpp + BoostWorkaround/boost/static_assert.hpp + BoostWorkaround/boost/tuple/tuple.hpp +) +SOURCE_GROUP(Boost FILES ${Boost_SRCS}) + +SET( Logging_SRCS + ${HEADER_PATH}/DefaultLogger.hpp + ${HEADER_PATH}/LogStream.hpp + ${HEADER_PATH}/Logger.hpp + ${HEADER_PATH}/NullLogger.hpp + Win32DebugLogStream.h + DefaultLogger.cpp + FileLogStream.h + StdOStreamLogStream.h +) +SOURCE_GROUP(Logging FILES ${Logging_SRCS}) + +SET( Common_SRCS + fast_atof.h + qnan.h + BaseImporter.cpp + BaseImporter.h + BaseProcess.cpp + BaseProcess.h + Importer.h + ScenePrivate.h + PostStepRegistry.cpp + ImporterRegistry.cpp + ByteSwapper.h + DefaultProgressHandler.h + DefaultIOStream.cpp + DefaultIOStream.h + DefaultIOSystem.cpp + DefaultIOSystem.h + CInterfaceIOWrapper.h + Hash.h + Importer.cpp + IFF.h + MemoryIOWrapper.h + ParsingUtils.h + StreamReader.h + StreamWriter.h + StringComparison.h + SGSpatialSort.cpp + SGSpatialSort.h + VertexTriangleAdjacency.cpp + VertexTriangleAdjacency.h + GenericProperty.h + SpatialSort.cpp + SpatialSort.h + SceneCombiner.cpp + SceneCombiner.h + ScenePreprocessor.cpp + ScenePreprocessor.h + SkeletonMeshBuilder.cpp + SkeletonMeshBuilder.h + SplitByBoneCountProcess.cpp + SplitByBoneCountProcess.h + SmoothingGroups.h + StandardShapes.cpp + StandardShapes.h + TargetAnimation.cpp + TargetAnimation.h + RemoveComments.cpp + RemoveComments.h + Subdivision.cpp + Subdivision.h + Vertex.h + LineSplitter.h + TinyFormatter.h + Profiler.h + LogAux.h + Bitmap.cpp + Bitmap.h + XMLTools.h + Version.cpp +) +SOURCE_GROUP(Common FILES ${Common_SRCS}) + +IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) + SET( C4D_SRCS + C4DImporter.cpp + C4DImporter.h + ) + SOURCE_GROUP( C4D FILES ${C4D_SRCS}) +ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) + +# macro to add the CMake Option ADD_ASSIMP_IMPORTER_ which enables compile of loader +# this way selective loaders can be compiled (reduces filesize + compile time) +MACRO(ADD_ASSIMP_IMPORTER name) + OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" TRUE) + IF(ASSIMP_BUILD_${name}_IMPORTER) + LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN}) + SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}") + SET(${name}_SRCS ${ARGN}) + SOURCE_GROUP(${name} FILES ${ARGN}) + ELSE() + SET(${name}_SRC "") + SET(ASSIMP_IMPORTERS_DISABLED "${ASSIMP_IMPORTERS_DISABLED} ${name}") + add_definitions(-DASSIMP_BUILD_NO_${name}_IMPORTER) + ENDIF() +ENDMACRO() + +SET(ASSIMP_LOADER_SRCS "") +SET(ASSIMP_IMPORTERS_ENABLED "") # list of enabled importers +SET(ASSIMP_IMPORTERS_DISABLED "") # disabled list (used to print) + +ADD_ASSIMP_IMPORTER(3DS + 3DSConverter.cpp + 3DSHelper.h + 3DSLoader.cpp + 3DSLoader.h + 3DSExporter.h + 3DSExporter.cpp +) + +ADD_ASSIMP_IMPORTER(AC + ACLoader.cpp + ACLoader.h +) + +ADD_ASSIMP_IMPORTER(ASE + ASELoader.cpp + ASELoader.h + ASEParser.cpp + ASEParser.h +) + +ADD_ASSIMP_IMPORTER(ASSBIN + AssbinExporter.h + AssbinExporter.cpp + AssbinLoader.h + AssbinLoader.cpp +) + +ADD_ASSIMP_IMPORTER(ASSXML + AssxmlExporter.h + AssxmlExporter.cpp +) + +ADD_ASSIMP_IMPORTER(B3D + B3DImporter.cpp + B3DImporter.h +) + +ADD_ASSIMP_IMPORTER(BVH + BVHLoader.cpp + BVHLoader.h +) + +ADD_ASSIMP_IMPORTER(COLLADA + ColladaHelper.h + ColladaLoader.cpp + ColladaLoader.h + ColladaParser.cpp + ColladaParser.h + ColladaExporter.h + ColladaExporter.cpp +) + +ADD_ASSIMP_IMPORTER(DXF + DXFLoader.cpp + DXFLoader.h + DXFHelper.h +) + +ADD_ASSIMP_IMPORTER(CSM + CSMLoader.cpp + CSMLoader.h +) + +ADD_ASSIMP_IMPORTER(HMP + HMPFileData.h + HMPLoader.cpp + HMPLoader.h + HalfLifeFileData.h +) + +#FIXME: allow to set IRRMESH by option +ADD_ASSIMP_IMPORTER(IRR + IRRLoader.cpp + IRRLoader.h + IRRMeshLoader.cpp + IRRMeshLoader.h + IRRShared.cpp + IRRShared.h +) + +ADD_ASSIMP_IMPORTER(LWO + LWOAnimation.cpp + LWOAnimation.h + LWOBLoader.cpp + LWOFileData.h + LWOLoader.cpp + LWOLoader.h + LWOMaterial.cpp +) + +ADD_ASSIMP_IMPORTER(LWS + LWSLoader.cpp + LWSLoader.h +) + +ADD_ASSIMP_IMPORTER(MD2 + MD2FileData.h + MD2Loader.cpp + MD2Loader.h + MD2NormalTable.h +) + +ADD_ASSIMP_IMPORTER(MD3 + MD3FileData.h + MD3Loader.cpp + MD3Loader.h +) + +ADD_ASSIMP_IMPORTER(MD5 + MD5Loader.cpp + MD5Loader.h + MD5Parser.cpp + MD5Parser.h +) + +ADD_ASSIMP_IMPORTER(MDC + MDCFileData.h + MDCLoader.cpp + MDCLoader.h + MDCNormalTable.h +) + +ADD_ASSIMP_IMPORTER(MDL + MDLDefaultColorMap.h + MDLFileData.h + MDLLoader.cpp + MDLLoader.h + MDLMaterialLoader.cpp +) + +SET( MaterialSystem_SRCS + MaterialSystem.cpp + MaterialSystem.h +) +SOURCE_GROUP( MaterialSystem FILES ${MaterialSystem_SRCS}) + +ADD_ASSIMP_IMPORTER(NFF + NFFLoader.cpp + NFFLoader.h +) + +ADD_ASSIMP_IMPORTER(NDO + NDOLoader.cpp + NDOLoader.h +) + +ADD_ASSIMP_IMPORTER(OFF + OFFLoader.cpp + OFFLoader.h +) + +ADD_ASSIMP_IMPORTER(OBJ + ObjFileData.h + ObjFileImporter.cpp + ObjFileImporter.h + ObjFileMtlImporter.cpp + ObjFileMtlImporter.h + ObjFileParser.cpp + ObjFileParser.h + ObjTools.h + + ObjExporter.h + ObjExporter.cpp +) + +ADD_ASSIMP_IMPORTER(OGRE + OgreImporter.h + OgreStructs.h + OgreParsingUtils.h + OgreBinarySerializer.h + OgreXmlSerializer.h + OgreImporter.cpp + OgreStructs.cpp + OgreBinarySerializer.cpp + OgreXmlSerializer.cpp + OgreMaterial.cpp +) + +ADD_ASSIMP_IMPORTER(OPENGEX + OpenGEXImporter.cpp + OpenGEXImporter.h + OpenGEXStructs.h +) + +ADD_ASSIMP_IMPORTER(PLY + PlyLoader.cpp + PlyLoader.h + PlyParser.cpp + PlyParser.h + PlyExporter.cpp + PlyExporter.h +) + +ADD_ASSIMP_IMPORTER(MS3D + MS3DLoader.cpp + MS3DLoader.h +) + +ADD_ASSIMP_IMPORTER(COB + COBLoader.cpp + COBLoader.h + COBScene.h +) + +ADD_ASSIMP_IMPORTER(BLEND + BlenderLoader.cpp + BlenderLoader.h + BlenderDNA.cpp + BlenderDNA.h + BlenderDNA.inl + BlenderScene.cpp + BlenderScene.h + BlenderSceneGen.h + BlenderIntermediate.h + BlenderModifier.h + BlenderModifier.cpp + BlenderBMesh.h + BlenderBMesh.cpp + BlenderTessellator.h + BlenderTessellator.cpp +) + +ADD_ASSIMP_IMPORTER(IFC + IFCLoader.cpp + IFCLoader.h + IFCReaderGen.cpp + IFCReaderGen.h + IFCUtil.h + IFCUtil.cpp + IFCGeometry.cpp + IFCMaterial.cpp + IFCProfile.cpp + IFCCurve.cpp + IFCBoolean.cpp + IFCOpenings.cpp + STEPFile.h + STEPFileReader.h + STEPFileReader.cpp + STEPFileEncoding.cpp + STEPFileEncoding.h +) + +ADD_ASSIMP_IMPORTER(XGL + XGLLoader.cpp + XGLLoader.h +) + + +ADD_ASSIMP_IMPORTER(FBX + FBXImporter.cpp + FBXCompileConfig.h + FBXImporter.h + FBXParser.cpp + FBXParser.h + FBXTokenizer.cpp + FBXTokenizer.h + FBXImportSettings.h + FBXConverter.h + FBXConverter.cpp + FBXUtil.h + FBXUtil.cpp + FBXDocument.h + FBXDocument.cpp + FBXProperties.h + FBXProperties.cpp + FBXMeshGeometry.cpp + FBXMaterial.cpp + FBXModel.cpp + FBXAnimation.cpp + FBXNodeAttribute.cpp + FBXDeformer.cpp + FBXBinaryTokenizer.cpp + FBXDocumentUtil.cpp +) + +SET( PostProcessing_SRCS + CalcTangentsProcess.cpp + CalcTangentsProcess.h + ComputeUVMappingProcess.cpp + ComputeUVMappingProcess.h + ConvertToLHProcess.cpp + ConvertToLHProcess.h + FindDegenerates.cpp + FindDegenerates.h + FindInstancesProcess.cpp + FindInstancesProcess.h + FindInvalidDataProcess.cpp + FindInvalidDataProcess.h + FixNormalsStep.cpp + FixNormalsStep.h + GenFaceNormalsProcess.cpp + GenFaceNormalsProcess.h + GenVertexNormalsProcess.cpp + GenVertexNormalsProcess.h + PretransformVertices.cpp + PretransformVertices.h + ImproveCacheLocality.cpp + ImproveCacheLocality.h + JoinVerticesProcess.cpp + JoinVerticesProcess.h + LimitBoneWeightsProcess.cpp + LimitBoneWeightsProcess.h + RemoveRedundantMaterials.cpp + RemoveRedundantMaterials.h + RemoveVCProcess.cpp + RemoveVCProcess.h + SortByPTypeProcess.cpp + SortByPTypeProcess.h + SplitLargeMeshes.cpp + SplitLargeMeshes.h + TextureTransform.cpp + TextureTransform.h + TriangulateProcess.cpp + TriangulateProcess.h + ValidateDataStructure.cpp + ValidateDataStructure.h + OptimizeGraph.cpp + OptimizeGraph.h + OptimizeMeshes.cpp + OptimizeMeshes.h + DeboneProcess.cpp + DeboneProcess.h + ProcessHelper.h + ProcessHelper.cpp + PolyTools.h + MakeVerboseFormat.cpp + MakeVerboseFormat.h +) +SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS}) + +ADD_ASSIMP_IMPORTER(Q3D + Q3DLoader.cpp + Q3DLoader.h +) + +ADD_ASSIMP_IMPORTER(Q3BSP + Q3BSPFileData.h + Q3BSPFileParser.h + Q3BSPFileParser.cpp + Q3BSPFileImporter.h + Q3BSPFileImporter.cpp + Q3BSPZipArchive.h + Q3BSPZipArchive.cpp +) + +ADD_ASSIMP_IMPORTER(RAW + RawLoader.cpp + RawLoader.h +) + +ADD_ASSIMP_IMPORTER(SMD + SMDLoader.cpp + SMDLoader.h +) + +ADD_ASSIMP_IMPORTER(STL + STLLoader.cpp + STLLoader.h + STLExporter.h + STLExporter.cpp +) + +ADD_ASSIMP_IMPORTER(TERRAGEN + TerragenLoader.cpp + TerragenLoader.h +) + +ADD_ASSIMP_IMPORTER(3D + UnrealLoader.cpp + UnrealLoader.h +) + +ADD_ASSIMP_IMPORTER(X + XFileHelper.h + XFileImporter.cpp + XFileImporter.h + XFileParser.cpp + XFileParser.h + XFileExporter.h + XFileExporter.cpp +) + +SET( Step_SRCS + StepExporter.h + StepExporter.cpp +) +SOURCE_GROUP( Step FILES ${Step_SRCS}) + +SET( Exporter_SRCS + Exporter.cpp + AssimpCExport.cpp + BlobIOSystem.h +) +SOURCE_GROUP( Exporter FILES ${Exporter_SRCS}) + +SET( Extra_SRCS + MD4FileData.h +) +SOURCE_GROUP( Extra FILES ${Extra_SRCS}) + +SET( IrrXML_SRCS + irrXMLWrapper.h + ../contrib/irrXML/CXMLReaderImpl.h + ../contrib/irrXML/heapsort.h + ../contrib/irrXML/irrArray.h + ../contrib/irrXML/irrString.h + ../contrib/irrXML/irrTypes.h + ../contrib/irrXML/irrXML.cpp + ../contrib/irrXML/irrXML.h +) +SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS}) + +SET( ConvertUTF_SRCS + ../contrib/ConvertUTF/ConvertUTF.h + ../contrib/ConvertUTF/ConvertUTF.c +) +SOURCE_GROUP( ConvertUTF FILES ${ConvertUTF_SRCS}) + +SET( Clipper_SRCS + ../contrib/clipper/clipper.hpp + ../contrib/clipper/clipper.cpp +) +SOURCE_GROUP( Clipper FILES ${Clipper_SRCS}) + + +SET( Poly2Tri_SRCS + ../contrib/poly2tri/poly2tri/common/shapes.cc + ../contrib/poly2tri/poly2tri/common/shapes.h + ../contrib/poly2tri/poly2tri/common/utils.h + ../contrib/poly2tri/poly2tri/sweep/advancing_front.h + ../contrib/poly2tri/poly2tri/sweep/advancing_front.cc + ../contrib/poly2tri/poly2tri/sweep/cdt.cc + ../contrib/poly2tri/poly2tri/sweep/cdt.h + ../contrib/poly2tri/poly2tri/sweep/sweep.cc + ../contrib/poly2tri/poly2tri/sweep/sweep.h + ../contrib/poly2tri/poly2tri/sweep/sweep_context.cc + ../contrib/poly2tri/poly2tri/sweep/sweep_context.h +) +SOURCE_GROUP( Poly2Tri FILES ${Poly2Tri_SRCS}) + +SET( unzip_SRCS + ../contrib/unzip/crypt.h + ../contrib/unzip/ioapi.c + ../contrib/unzip/ioapi.h + ../contrib/unzip/unzip.c + ../contrib/unzip/unzip.h +) +SOURCE_GROUP( unzip FILES ${unzip_SRCS}) + +SET ( openddl_parser_SRCS + ../contrib/openddlparser/code/OpenDDLParser.cpp + ../contrib/openddlparser/code/DDLNode.cpp + ../contrib/openddlparser/code/Value.cpp + ../contrib/openddlparser/include/openddlparser/OpenDDLParser.h + ../contrib/openddlparser/include/openddlparser/OpenDDLParserUtils.h + ../contrib/openddlparser/include/openddlparser/OpenDDLCommon.h + ../contrib/openddlparser/include/openddlparser/DDLNode.h + ../contrib/openddlparser/include/openddlparser/Value.h +) +SOURCE_GROUP( openddl_parser FILES ${openddl_parser_SRCS}) + +# VC2010 fixes +if(MSVC10) + option( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF ) + if( VC10_STDINT_FIX ) + ADD_DEFINITIONS( -D_STDINT ) + endif( VC10_STDINT_FIX ) +endif(MSVC10) + +ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT ) + +if ( MSVC ) + ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) + ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS ) +endif ( MSVC ) + +if (UNZIP_FOUND) + SET (unzip_compile_SRCS "") +else (UNZIP_FOUND) + SET (unzip_compile_SRCS ${unzip_SRCS}) +endif (UNZIP_FOUND) + +MESSAGE(STATUS "Enabled formats:${ASSIMP_IMPORTERS_ENABLED}") +MESSAGE(STATUS "Disabled formats:${ASSIMP_IMPORTERS_DISABLED}") + +SET( assimp_src + # Assimp Files + ${Core_SRCS} + ${Common_SRCS} + ${Logging_SRCS} + ${Exporter_SRCS} + ${PostProcessing_SRCS} + ${MaterialSystem_SRCS} + ${Step_SRCS} + + # Model Support + ${ASSIMP_LOADER_SRCS} + + # Third-party libraries + ${IrrXML_SRCS} + ${ConvertUTF_SRCS} + ${unzip_compile_SRCS} + ${Poly2Tri_SRCS} + ${Clipper_SRCS} + ${openddl_parser_SRCS} + # Necessary to show the headers in the project when using the VC++ generator: + ${Boost_SRCS} + + ${PUBLIC_HEADERS} + ${COMPILER_HEADERS} + +) +add_definitions( -DOPENDDLPARSER_BUILD ) + +INCLUDE_DIRECTORIES( + ../contrib/openddlparser/include +) + +IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) + SET( assimp_src ${assimp_src} ${C4D_SRCS}) + INCLUDE_DIRECTORIES(${C4D_INCLUDES}) +ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) + +ADD_LIBRARY( assimp ${assimp_src} ) + +TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES} ) + +if(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) + set(ASSIMP_ANDROID_JNIIOSYSTEM_PATH port/AndroidJNI) + add_subdirectory(../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/ ../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/) + target_link_libraries(assimp android_jniiosystem) +endif(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) + +IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) + TARGET_LINK_LIBRARIES(assimp optimized ${C4D_RELEASE_LIBRARY}) + TARGET_LINK_LIBRARIES(assimp debug ${C4D_DEBUG_LIBRARY}) + TARGET_LINK_LIBRARIES(assimp ${C4D_EXTRA_LIBRARIES}) +ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) + +if( MSVC ) + # in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix + if( MSVC70 OR MSVC71 ) + set(MSVC_PREFIX "vc70") + elseif( MSVC80 ) + set(MSVC_PREFIX "vc80") + elseif( MSVC90 ) + set(MSVC_PREFIX "vc90") + elseif( MSVC10 ) + set(MSVC_PREFIX "vc100") + elseif( MSVC11 ) + set(MSVC_PREFIX "vc110") + elseif( MSVC12 ) + set(MSVC_PREFIX "vc120") + else() + set(MSVC_PREFIX "vc130") + endif() + set(LIBRARY_SUFFIX "${ASSIMP_LIBRARY_SUFFIX}-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library") +endif() + +SET_TARGET_PROPERTIES( assimp PROPERTIES + VERSION ${ASSIMP_VERSION} + SOVERSION ${ASSIMP_SOVERSION} # use full version + OUTPUT_NAME assimp${LIBRARY_SUFFIX} +) + +if (APPLE) + SET_TARGET_PROPERTIES( assimp PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}") +endif() + +# Build against external unzip, or add ../contrib/unzip so +# assimp can #include "unzip.h" +if (UNZIP_FOUND) + INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS}) + TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES}) +else (UNZIP_FOUND) + INCLUDE_DIRECTORIES("../contrib/unzip") +endif (UNZIP_FOUND) + +INSTALL( TARGETS assimp + LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR} + ARCHIVE DESTINATION ${ASSIMP_LIB_INSTALL_DIR} + RUNTIME DESTINATION ${ASSIMP_BIN_INSTALL_DIR} + COMPONENT ${LIBASSIMP_COMPONENT}) +INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev) +INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev) +if (ASSIMP_ANDROID_JNIIOSYSTEM) + INSTALL(FILES ${HEADER_PATH}/../${ASSIMP_ANDROID_JNIIOSYSTEM_PATH}/AndroidJNIIOSystem.h + DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR} + COMPONENT assimp-dev) +endif(ASSIMP_ANDROID_JNIIOSYSTEM) + +if(MSVC AND ASSIMP_INSTALL_PDB) + install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${CMAKE_DEBUG_POSTFIX}.pdb + DESTINATION ${ASSIMP_LIB_INSTALL_DIR} + CONFIGURATIONS Debug + ) + install(FILES ${Assimp_BINARY_DIR}/code/RelWithDebInfo/assimp.pdb + DESTINATION ${ASSIMP_LIB_INSTALL_DIR} + CONFIGURATIONS RelWithDebInfo + ) +endif () diff --git a/samples/SimpleOpenGL/CMakeLists.txt b/samples/SimpleOpenGL/CMakeLists.txt index cc83a7301..ac3b4da1c 100644 --- a/samples/SimpleOpenGL/CMakeLists.txt +++ b/samples/SimpleOpenGL/CMakeLists.txt @@ -1,40 +1,40 @@ -FIND_PACKAGE(OpenGL) -FIND_PACKAGE(GLUT) -find_library(M_LIB m) - -IF ( NOT GLUT_FOUND ) - IF ( MSVC ) - SET ( GLUT_FOUND 1 ) - SET ( GLUT_INCLUDE_DIR ${Assimp_SOURCE_DIR}/samples/glut/ ) - SET ( GLUT_LIBRARIES ${Assimp_SOURCE_DIR}/samples/glut/glut32.lib ) - ELSE ( MSVC ) - MESSAGE( WARNING "Please install glut." ) - ENDIF ( MSVC ) -ENDIF ( NOT GLUT_FOUND ) - -INCLUDE_DIRECTORIES( - ${Assimp_SOURCE_DIR}/include - ${Assimp_SOURCE_DIR}/code - ${OPENGL_INCLUDE_DIR} - ${GLUT_INCLUDE_DIR} -) - -LINK_DIRECTORIES( - ${Assimp_BINARY_DIR} - ${Assimp_BINARY_DIR}/lib -) - -ADD_EXECUTABLE( assimp_simpleogl - Sample_SimpleOpenGL.c -) - -SET_PROPERTY(TARGET assimp_simpleogl PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) - -TARGET_LINK_LIBRARIES( assimp_simpleogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ${M_LIB} ) -SET_TARGET_PROPERTIES( assimp_simpleogl PROPERTIES - OUTPUT_NAME assimp_simpleogl -) - -INSTALL( TARGETS assimp_simpleogl - DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev -) +FIND_PACKAGE(OpenGL) +FIND_PACKAGE(GLUT) +find_library(M_LIB m) + +IF ( NOT GLUT_FOUND ) + IF ( MSVC ) + SET ( GLUT_FOUND 1 ) + SET ( GLUT_INCLUDE_DIR ${Assimp_SOURCE_DIR}/samples/glut/ ) + SET ( GLUT_LIBRARIES ${Assimp_SOURCE_DIR}/samples/glut/glut32.lib ) + ELSE ( MSVC ) + MESSAGE( WARNING "Please install glut." ) + ENDIF ( MSVC ) +ENDIF ( NOT GLUT_FOUND ) + +INCLUDE_DIRECTORIES( + ${Assimp_SOURCE_DIR}/include + ${Assimp_SOURCE_DIR}/code + ${OPENGL_INCLUDE_DIR} + ${GLUT_INCLUDE_DIR} +) + +LINK_DIRECTORIES( + ${Assimp_BINARY_DIR} + ${Assimp_BINARY_DIR}/lib +) + +ADD_EXECUTABLE( assimp_simpleogl + Sample_SimpleOpenGL.c +) + +SET_PROPERTY(TARGET assimp_simpleogl PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) + +TARGET_LINK_LIBRARIES( assimp_simpleogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ${M_LIB} ) +SET_TARGET_PROPERTIES( assimp_simpleogl PROPERTIES + OUTPUT_NAME assimp_simpleogl +) + +INSTALL( TARGETS assimp_simpleogl + DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev +) diff --git a/samples/SimpleTexturedOpenGL/CMakeLists.txt b/samples/SimpleTexturedOpenGL/CMakeLists.txt index d26756bfb..6c34acda5 100644 --- a/samples/SimpleTexturedOpenGL/CMakeLists.txt +++ b/samples/SimpleTexturedOpenGL/CMakeLists.txt @@ -1,43 +1,43 @@ -FIND_PACKAGE(OpenGL) -FIND_PACKAGE(GLUT) - -IF ( NOT GLUT_FOUND ) - IF ( MSVC ) - SET ( GLUT_FOUND 1 ) - SET ( GLUT_INCLUDE_DIR ${Assimp_SOURCE_DIR}/samples/glut/ ) - SET ( GLUT_LIBRARIES ${Assimp_SOURCE_DIR}/samples/glut/glut32.lib ) - ELSE ( MSVC ) - MESSAGE( WARNING "Please install glut." ) - ENDIF ( MSVC ) -ENDIF ( NOT GLUT_FOUND ) - -INCLUDE_DIRECTORIES( - ${Assimp_SOURCE_DIR}/include - ${Assimp_SOURCE_DIR}/code - ${OPENGL_INCLUDE_DIR} - ${GLUT_INCLUDE_DIR} - ${Assimp_SOURCE_DIR}/samples/DevIL/include/ -) - -LINK_DIRECTORIES( - ${Assimp_BINARY_DIR} - ${Assimp_BINARY_DIR}/lib/ - ${Assimp_SOURCE_DIR}/samples/DevIL/lib/ -) - -ADD_EXECUTABLE( assimp_simpletexturedogl WIN32 - SimpleTexturedOpenGL/include/boost_includes.h - SimpleTexturedOpenGL/src/model_loading.cpp -) - -SET_PROPERTY(TARGET assimp_simpletexturedogl PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) - -TARGET_LINK_LIBRARIES( assimp_simpletexturedogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} DevIL.lib ) - -SET_TARGET_PROPERTIES( assimp_simpletexturedogl PROPERTIES - OUTPUT_NAME assimp_simpletexturedogl -) - -INSTALL( TARGETS assimp_simpletexturedogl - DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev -) +FIND_PACKAGE(OpenGL) +FIND_PACKAGE(GLUT) + +IF ( NOT GLUT_FOUND ) + IF ( MSVC ) + SET ( GLUT_FOUND 1 ) + SET ( GLUT_INCLUDE_DIR ${Assimp_SOURCE_DIR}/samples/glut/ ) + SET ( GLUT_LIBRARIES ${Assimp_SOURCE_DIR}/samples/glut/glut32.lib ) + ELSE ( MSVC ) + MESSAGE( WARNING "Please install glut." ) + ENDIF ( MSVC ) +ENDIF ( NOT GLUT_FOUND ) + +INCLUDE_DIRECTORIES( + ${Assimp_SOURCE_DIR}/include + ${Assimp_SOURCE_DIR}/code + ${OPENGL_INCLUDE_DIR} + ${GLUT_INCLUDE_DIR} + ${Assimp_SOURCE_DIR}/samples/DevIL/include/ +) + +LINK_DIRECTORIES( + ${Assimp_BINARY_DIR} + ${Assimp_BINARY_DIR}/lib/ + ${Assimp_SOURCE_DIR}/samples/DevIL/lib/ +) + +ADD_EXECUTABLE( assimp_simpletexturedogl WIN32 + SimpleTexturedOpenGL/include/boost_includes.h + SimpleTexturedOpenGL/src/model_loading.cpp +) + +SET_PROPERTY(TARGET assimp_simpletexturedogl PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) + +TARGET_LINK_LIBRARIES( assimp_simpletexturedogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} DevIL.lib ) + +SET_TARGET_PROPERTIES( assimp_simpletexturedogl PROPERTIES + OUTPUT_NAME assimp_simpletexturedogl +) + +INSTALL( TARGETS assimp_simpletexturedogl + DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev +) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 967dfd313..4bd3ff9c6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,66 +1,65 @@ -cmake_minimum_required( VERSION 2.6 ) - -INCLUDE( AddGTest ) - -INCLUDE_DIRECTORIES( - ${Assimp_SOURCE_DIR}/include - ${Assimp_SOURCE_DIR}/code -) - -# Add the temporary output directories to the library path to make sure the -# Assimp library can be found, even if it is not installed system-wide yet. -LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib ) - -SOURCE_GROUP( unit FILES - unit/CCompilerTest.c -) - -SET( TEST_SRCS - unit/AssimpAPITest.cpp - unit/utFastAtof.cpp - unit/utFindDegenerates.cpp - unit/utFindInvalidData.cpp - unit/utFixInfacingNormals.cpp - unit/utGenNormals.cpp - unit/utImporter.cpp - unit/utImproveCacheLocality.cpp - unit/utJoinVertices.cpp - unit/utLimitBoneWeights.cpp - unit/utMaterialSystem.cpp - unit/utPretransformVertices.cpp - unit/utRemoveComments.cpp - unit/utRemoveComponent.cpp - unit/utRemoveRedundantMaterials.cpp - unit/utScenePreprocessor.cpp - unit/utSharedPPData.cpp - unit/utSortByPType.cpp - unit/utSplitLargeMeshes.cpp - unit/utTargetAnimation.cpp - unit/utTextureTransform.cpp - unit/utTriangulate.cpp - unit/utVertexTriangleAdjacency.cpp - unit/utNoBoostTest.cpp - unit/utColladaExportCamera.cpp - unit/utColladaExportLight.cpp -) - -SOURCE_GROUP( tests FILES ${TEST_SRCS} ) - -if(AddGTest_FOUND) -add_executable( unit - unit/CCompilerTest.c - unit/Main.cpp - ../code/Version.cpp - ${TEST_SRCS} -) - -SET_PROPERTY( TARGET assimp PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX} ) - -add_dependencies( unit gtest ) -target_link_libraries( unit assimp - debug ${GTEST_DEBUG_LIBRARIES} - optimized ${GTEST_RELEASE_LIBRARIES} -) -endif(AddGTest_FOUND) -add_subdirectory(headercheck) - +cmake_minimum_required( VERSION 2.6 ) + +INCLUDE( AddGTest ) + +INCLUDE_DIRECTORIES( + ${Assimp_SOURCE_DIR}/include + ${Assimp_SOURCE_DIR}/code +) + +# Add the temporary output directories to the library path to make sure the +# Assimp library can be found, even if it is not installed system-wide yet. +LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib ) + +SOURCE_GROUP( unit FILES + unit/CCompilerTest.c +) + +SET( TEST_SRCS + unit/AssimpAPITest.cpp + unit/utFastAtof.cpp + unit/utFindDegenerates.cpp + unit/utFindInvalidData.cpp + unit/utFixInfacingNormals.cpp + unit/utGenNormals.cpp + unit/utImporter.cpp + unit/utImproveCacheLocality.cpp + unit/utJoinVertices.cpp + unit/utLimitBoneWeights.cpp + unit/utMaterialSystem.cpp + unit/utPretransformVertices.cpp + unit/utRemoveComments.cpp + unit/utRemoveComponent.cpp + unit/utRemoveRedundantMaterials.cpp + unit/utScenePreprocessor.cpp + unit/utSharedPPData.cpp + unit/utSortByPType.cpp + unit/utSplitLargeMeshes.cpp + unit/utTargetAnimation.cpp + unit/utTextureTransform.cpp + unit/utTriangulate.cpp + unit/utVertexTriangleAdjacency.cpp + unit/utNoBoostTest.cpp + unit/utColladaExportCamera.cpp + unit/utColladaExportLight.cpp +) + +SOURCE_GROUP( tests FILES ${TEST_SRCS} ) + +if(AddGTest_FOUND) +add_executable( unit + unit/CCompilerTest.c + unit/Main.cpp + ../code/Version.cpp + ${TEST_SRCS} +) + +SET_PROPERTY( TARGET assimp PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX} ) + +add_dependencies( unit gtest ) +target_link_libraries( unit assimp + debug ${GTEST_DEBUG_LIBRARIES} + optimized ${GTEST_RELEASE_LIBRARIES} +) +endif(AddGTest_FOUND) +add_subdirectory(headercheck) diff --git a/tools/assimp_cmd/CMakeLists.txt b/tools/assimp_cmd/CMakeLists.txt index 6857a0ba2..1cd528311 100644 --- a/tools/assimp_cmd/CMakeLists.txt +++ b/tools/assimp_cmd/CMakeLists.txt @@ -1,38 +1,38 @@ -cmake_minimum_required( VERSION 2.6 ) - -INCLUDE_DIRECTORIES( - ${Assimp_SOURCE_DIR}/include - ${Assimp_SOURCE_DIR}/code -) - -LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${Assimp_BINARY_DIR}/lib ) - -ADD_EXECUTABLE( assimp_cmd - assimp_cmd.rc - CompareDump.cpp - ImageExtractor.cpp - Main.cpp - Main.h - resource.h - WriteDumb.cpp - Info.cpp - Export.cpp -) - -SET_PROPERTY(TARGET assimp_cmd PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) - -IF( WIN32 ) - ADD_CUSTOM_COMMAND(TARGET assimp_cmd - PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ - MAIN_DEPENDENCY assimp) -ENDIF( WIN32 ) - -TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES} ) -SET_TARGET_PROPERTIES( assimp_cmd PROPERTIES - OUTPUT_NAME assimp -) - -INSTALL( TARGETS assimp_cmd - DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-bin -) +cmake_minimum_required( VERSION 2.6 ) + +INCLUDE_DIRECTORIES( + ${Assimp_SOURCE_DIR}/include + ${Assimp_SOURCE_DIR}/code +) + +LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${Assimp_BINARY_DIR}/lib ) + +ADD_EXECUTABLE( assimp_cmd + assimp_cmd.rc + CompareDump.cpp + ImageExtractor.cpp + Main.cpp + Main.h + resource.h + WriteDumb.cpp + Info.cpp + Export.cpp +) + +SET_PROPERTY(TARGET assimp_cmd PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) + +IF( WIN32 ) + ADD_CUSTOM_COMMAND(TARGET assimp_cmd + PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ + MAIN_DEPENDENCY assimp) +ENDIF( WIN32 ) + +TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES} ) +SET_TARGET_PROPERTIES( assimp_cmd PROPERTIES + OUTPUT_NAME assimp +) + +INSTALL( TARGETS assimp_cmd + DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-bin +) diff --git a/tools/assimp_view/CMakeLists.txt b/tools/assimp_view/CMakeLists.txt index e65060c9d..9b427e7cc 100644 --- a/tools/assimp_view/CMakeLists.txt +++ b/tools/assimp_view/CMakeLists.txt @@ -3,63 +3,63 @@ cmake_minimum_required( VERSION 2.6 ) FIND_PACKAGE(DirectX REQUIRED) INCLUDE_DIRECTORIES ( - ${Assimp_SOURCE_DIR}/include - ${Assimp_SOURCE_DIR}/code - ${DirectX_INCLUDE_DIR} + ${Assimp_SOURCE_DIR}/include + ${Assimp_SOURCE_DIR}/code + ${DirectX_INCLUDE_DIR} ) # Make sure the linker can find the Assimp library once it is built. LINK_DIRECTORIES (${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib) ADD_EXECUTABLE( assimp_viewer WIN32 - AnimEvaluator.cpp - Background.cpp - Display.cpp - HelpDialog.cpp - Input.cpp - LogDisplay.cpp - LogWindow.cpp - Material.cpp - MeshRenderer.cpp - MessageProc.cpp - Normals.cpp - SceneAnimator.cpp - Shaders.cpp - assimp_view.cpp - stdafx.cpp - assimp_view.rc - banner.bmp - banner_pure.bmp - base_anim.bmp - base_display.bmp - base_inter.bmp - base_rendering.bmp - base_stats.bmp - fx.bmp - n.bmp - root.bmp - tx.bmp - txi.bmp + AnimEvaluator.cpp + Background.cpp + Display.cpp + HelpDialog.cpp + Input.cpp + LogDisplay.cpp + LogWindow.cpp + Material.cpp + MeshRenderer.cpp + MessageProc.cpp + Normals.cpp + SceneAnimator.cpp + Shaders.cpp + assimp_view.cpp + stdafx.cpp + assimp_view.rc + banner.bmp + banner_pure.bmp + base_anim.bmp + base_display.bmp + base_inter.bmp + base_rendering.bmp + base_stats.bmp + fx.bmp + n.bmp + root.bmp + tx.bmp + txi.bmp ) SET_PROPERTY(TARGET assimp_viewer PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) IF ( MSVC ) - ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) - ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS ) + ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) + ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS ) ENDIF ( MSVC ) # ADD_CUSTOM_COMMAND(TARGET assimp_viewer - PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ - MAIN_DEPENDENCY assimp) + PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ + MAIN_DEPENDENCY assimp) # Link the executable to the assimp + dx libs. TARGET_LINK_LIBRARIES ( assimp_viewer assimp ${DirectX_LIBRARY} ${DirectX_D3DX9_LIBRARY} comctl32.lib winmm.lib ) INSTALL( TARGETS assimp_viewer - DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev + DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev )