From c6d1fcca746f475c6b7cc5cc5aa4329ae8fd96c4 Mon Sep 17 00:00:00 2001 From: Vertexwahn Date: Thu, 10 Dec 2015 17:15:27 +0100 Subject: [PATCH 1/3] Added custom target that copies generated libs and bin files to lib32/lib64 and bin32/64 folder --- .gitignore | 6 ++++++ CMakeLists.txt | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/.gitignore b/.gitignore index 89fe66c1f..eae1c7d81 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,9 @@ test/gtest/src/gtest-stamp/gtest-gitclone-lastrun.txt Assimp.opensdf contrib/zlib/CTestTestfile.cmake ipch/assimp_viewer-44bbbcd1/assimp_viewerd-ccc45335.ipch +bin64/assimp-vc140-mt.dll +bin64/assimp-vc140-mtd.dll +lib64/assimp-vc140-mt.exp +lib64/assimp-vc140-mtd.exp +lib64/assimp-vc140-mtd.ilk +lib64/assimp-vc140-mtd.pdb diff --git a/CMakeLists.txt b/CMakeLists.txt index bc4c9cdc7..ddbd4e44d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -340,3 +340,25 @@ if(CMAKE_CPACK_COMMAND AND UNIX AND ASSIMP_OPT_BUILD_PACKAGES) include(CPack) include(DebSourcePPA) endif() + +if(WIN32) + if(MSVC14) + if (CMAKE_SIZEOF_VOID_P EQUAL 8) + set(BIN_DIR "${PROJECT_SOURCE_DIR}/bin64/") + set(LIB_DIR "${PROJECT_SOURCE_DIR}/lib64/") + elseif() + set(BIN_DIR "${PROJECT_SOURCE_DIR}/bin32/") + set(LIB_DIR "${PROJECT_SOURCE_DIR}/lib32/") + endif() + + add_custom_target(UpdateAssimpLibsDebugSymbolsAndDLLs COMMENT "Copying Assimp Libraries ..." VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-vc140-mt.dll ${BIN_DIR}assimp-vc140-mt.dll VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-vc140-mt.exp ${LIB_DIR}assimp-vc140-mt.exp VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-vc140-mt.lib ${LIB_DIR}assimp-vc140-mt.lib VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.dll ${BIN_DIR}assimp-vc140-mtd.dll VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.exp ${LIB_DIR}assimp-vc140-mtd.exp VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.ilk ${LIB_DIR}assimp-vc140-mtd.ilk VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.lib ${LIB_DIR}assimp-vc140-mtd.lib VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.pdb ${LIB_DIR}assimp-vc140-mtd.pdb VERBATIM) + endif(MSVC14) +endif (WIN32) \ No newline at end of file From 1fd66df37db3c7d1980b27458b1dc00ef1ac1799 Mon Sep 17 00:00:00 2001 From: Vertexwahn Date: Thu, 10 Dec 2015 17:58:55 +0100 Subject: [PATCH 2/3] Improved Findassimp.cmake to support VS2015. --- cmake-modules/Findassimp.cmake | 94 ++++++++++++++++++++++++++-------- 1 file changed, 72 insertions(+), 22 deletions(-) diff --git a/cmake-modules/Findassimp.cmake b/cmake-modules/Findassimp.cmake index 971b49d5e..a901ed6f1 100644 --- a/cmake-modules/Findassimp.cmake +++ b/cmake-modules/Findassimp.cmake @@ -1,25 +1,75 @@ -FIND_PATH( - assimp_INCLUDE_DIRS - NAMES postprocess.h scene.h version.h config.h cimport.h - PATHS /usr/local/include/ -) +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(ASSIMP_ARCHITECTURE "64") +elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) + set(ASSIMP_ARCHITECTURE "32") +endif(CMAKE_SIZEOF_VOID_P EQUAL 8) + +if(WIN32) + set(ASSIMP_ROOT_DIR CACHE PATH "ASSIMP root directory") -FIND_LIBRARY( - assimp_LIBRARIES - NAMES assimp - PATHS /usr/local/lib/ -) + # Find path of each library + find_path(ASSIMP_INCLUDE_DIR + NAMES + assimp/anim.h + HINTS + ${ASSIMP_ROOT_DIR}/include + ) -IF (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) - SET(assimp_FOUND TRUE) -ENDIF (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) + if(MSVC14) + + find_path(ASSIMP_LIBRARY_DIR + NAMES + assimp-vc140-mt.lib + HINTS + ${ASSIMP_ROOT_DIR}/lib${ASSIMP_ARCHITECTURE} + ) + + find_library(ASSIMP_LIBRARY_RELEASE assimp-vc140-mt.lib PATHS ${ASSIMP_LIBRARY_DIR}) + find_library(ASSIMP_LIBRARY_DEBUG assimp-vc140-mtd.lib PATHS ${ASSIMP_LIBRARY_DIR}) + + set(ASSIMP_LIBRARY + optimized ${ASSIMP_LIBRARY_RELEASE} + debug ${ASSIMP_LIBRARY_DEBUG} + ) + + set(ASSIMP_LIBRARIES "ASSIMP_LIBRARY_RELEASE" "ASSIMP_LIBRARY_DEBUG") + + FUNCTION(ASSIMP_COPY_BINARIES TargetDirectory) + ADD_CUSTOM_TARGET(AssimpCopyBinaries + COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-vc140-mtd.dll ${TargetDirectory}/Debug/assimp-vc140-mtd.dll + COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-vc140-mt.dll ${TargetDirectory}/Release/assimp-vc140-mt.dll + COMMENT "Copying Assimp binaries to '${TargetDirectory}'" + VERBATIM) + ENDFUNCTION(ASSIMP_COPY_BINARIES) + + endif(MSVC14) + +else(WIN32) -IF (assimp_FOUND) - 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) -ENDIF (assimp_FOUND) + find_path( + 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/ + ) + + if (assimp_INCLUDE_DIRS AND assimp_LIBRARIES) + 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) + else (assimp_FOUND) + if (assimp_FIND_REQUIRED) + message(FATAL_ERROR "Could not find asset importer library") + endif (assimp_FIND_REQUIRED) + endif (assimp_FOUND) + +endif(WIN32) \ No newline at end of file From 270355f326ba80a2a3a0f64a2f3ece4932cbd987 Mon Sep 17 00:00:00 2001 From: Vertexwahn Date: Fri, 11 Dec 2015 10:33:47 +0100 Subject: [PATCH 3/3] Improved Findassimp.cmake to support VS2013. Added deployment of VS2013 libs and dll files. --- .gitignore | 6 +++++ CMakeLists.txt | 40 +++++++++++++++++++--------------- cmake-modules/Findassimp.cmake | 20 +++++++++++------ 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index eae1c7d81..b30e5d592 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,9 @@ lib64/assimp-vc140-mt.exp lib64/assimp-vc140-mtd.exp lib64/assimp-vc140-mtd.ilk lib64/assimp-vc140-mtd.pdb +bin64/assimp-vc120-mt.dll +bin64/assimp-vc120-mtd.dll +lib64/assimp-vc120-mtd.pdb +lib64/assimp-vc120-mtd.ilk +lib64/assimp-vc120-mtd.exp +lib64/assimp-vc120-mt.exp diff --git a/CMakeLists.txt b/CMakeLists.txt index ddbd4e44d..0be3b21cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -342,23 +342,29 @@ if(CMAKE_CPACK_COMMAND AND UNIX AND ASSIMP_OPT_BUILD_PACKAGES) endif() if(WIN32) - if(MSVC14) - if (CMAKE_SIZEOF_VOID_P EQUAL 8) - set(BIN_DIR "${PROJECT_SOURCE_DIR}/bin64/") - set(LIB_DIR "${PROJECT_SOURCE_DIR}/lib64/") - elseif() - set(BIN_DIR "${PROJECT_SOURCE_DIR}/bin32/") - set(LIB_DIR "${PROJECT_SOURCE_DIR}/lib32/") - endif() + if (CMAKE_SIZEOF_VOID_P EQUAL 8) + set(BIN_DIR "${PROJECT_SOURCE_DIR}/bin64/") + set(LIB_DIR "${PROJECT_SOURCE_DIR}/lib64/") + elseif() + set(BIN_DIR "${PROJECT_SOURCE_DIR}/bin32/") + set(LIB_DIR "${PROJECT_SOURCE_DIR}/lib32/") + endif() + + if(MSVC12) + set(ASSIMP_MSVC_VERSION "vc120") + elseif(MSVC14) + set(ASSIMP_MSVC_VERSION "vc140") + endif(MSVC12) + if(MSVC12 OR MSVC14) add_custom_target(UpdateAssimpLibsDebugSymbolsAndDLLs COMMENT "Copying Assimp Libraries ..." VERBATIM) - add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-vc140-mt.dll ${BIN_DIR}assimp-vc140-mt.dll VERBATIM) - add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-vc140-mt.exp ${LIB_DIR}assimp-vc140-mt.exp VERBATIM) - add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-vc140-mt.lib ${LIB_DIR}assimp-vc140-mt.lib VERBATIM) - add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.dll ${BIN_DIR}assimp-vc140-mtd.dll VERBATIM) - add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.exp ${LIB_DIR}assimp-vc140-mtd.exp VERBATIM) - add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.ilk ${LIB_DIR}assimp-vc140-mtd.ilk VERBATIM) - add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.lib ${LIB_DIR}assimp-vc140-mtd.lib VERBATIM) - add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-vc140-mtd.pdb ${LIB_DIR}assimp-vc140-mtd.pdb VERBATIM) - endif(MSVC14) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-${ASSIMP_MSVC_VERSION}-mt.dll ${BIN_DIR}assimp-${ASSIMP_MSVC_VERSION}-mt.dll VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-${ASSIMP_MSVC_VERSION}-mt.exp ${LIB_DIR}assimp-${ASSIMP_MSVC_VERSION}-mt.exp VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Release/assimp-${ASSIMP_MSVC_VERSION}-mt.lib ${LIB_DIR}assimp-${ASSIMP_MSVC_VERSION}-mt.lib VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-${ASSIMP_MSVC_VERSION}-mtd.dll ${BIN_DIR}assimp-${ASSIMP_MSVC_VERSION}-mtd.dll VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-${ASSIMP_MSVC_VERSION}-mtd.exp ${LIB_DIR}assimp-${ASSIMP_MSVC_VERSION}-mtd.exp VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-${ASSIMP_MSVC_VERSION}-mtd.ilk ${LIB_DIR}assimp-${ASSIMP_MSVC_VERSION}-mtd.ilk VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-${ASSIMP_MSVC_VERSION}-mtd.lib ${LIB_DIR}assimp-${ASSIMP_MSVC_VERSION}-mtd.lib VERBATIM) + add_custom_command(TARGET UpdateAssimpLibsDebugSymbolsAndDLLs COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/code/Debug/assimp-${ASSIMP_MSVC_VERSION}-mtd.pdb ${LIB_DIR}assimp-${ASSIMP_MSVC_VERSION}-mtd.pdb VERBATIM) + endif(MSVC12 OR MSVC14) endif (WIN32) \ No newline at end of file diff --git a/cmake-modules/Findassimp.cmake b/cmake-modules/Findassimp.cmake index a901ed6f1..95f3250b3 100644 --- a/cmake-modules/Findassimp.cmake +++ b/cmake-modules/Findassimp.cmake @@ -15,17 +15,23 @@ if(WIN32) ${ASSIMP_ROOT_DIR}/include ) - if(MSVC14) + if(MSVC12) + set(ASSIMP_MSVC_VERSION "vc120") + elseif(MSVC14) + set(ASSIMP_MSVC_VERSION "vc140") + endif(MSVC12) + + if(MSVC12 OR MSVC14) find_path(ASSIMP_LIBRARY_DIR NAMES - assimp-vc140-mt.lib + assimp-${ASSIMP_MSVC_VERSION}-mt.lib HINTS ${ASSIMP_ROOT_DIR}/lib${ASSIMP_ARCHITECTURE} ) - find_library(ASSIMP_LIBRARY_RELEASE assimp-vc140-mt.lib PATHS ${ASSIMP_LIBRARY_DIR}) - find_library(ASSIMP_LIBRARY_DEBUG assimp-vc140-mtd.lib PATHS ${ASSIMP_LIBRARY_DIR}) + find_library(ASSIMP_LIBRARY_RELEASE assimp-${ASSIMP_MSVC_VERSION}-mt.lib PATHS ${ASSIMP_LIBRARY_DIR}) + find_library(ASSIMP_LIBRARY_DEBUG assimp-${ASSIMP_MSVC_VERSION}-mtd.lib PATHS ${ASSIMP_LIBRARY_DIR}) set(ASSIMP_LIBRARY optimized ${ASSIMP_LIBRARY_RELEASE} @@ -36,13 +42,13 @@ if(WIN32) FUNCTION(ASSIMP_COPY_BINARIES TargetDirectory) ADD_CUSTOM_TARGET(AssimpCopyBinaries - COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-vc140-mtd.dll ${TargetDirectory}/Debug/assimp-vc140-mtd.dll - COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-vc140-mt.dll ${TargetDirectory}/Release/assimp-vc140-mt.dll + COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-${ASSIMP_MSVC_VERSION}-mtd.dll ${TargetDirectory}/Debug/assimp-${ASSIMP_MSVC_VERSION}-mtd.dll + COMMAND ${CMAKE_COMMAND} -E copy ${ASSIMP_ROOT_DIR}/bin${ASSIMP_ARCHITECTURE}/assimp-${ASSIMP_MSVC_VERSION}-mt.dll ${TargetDirectory}/Release/assimp-${ASSIMP_MSVC_VERSION}-mt.dll COMMENT "Copying Assimp binaries to '${TargetDirectory}'" VERBATIM) ENDFUNCTION(ASSIMP_COPY_BINARIES) - endif(MSVC14) + endif() else(WIN32)