use pre-built NVTT on windows

This commit is contained in:
Stephen Birarda 2017-04-14 14:24:47 -07:00 committed by Atlante45
parent ae73cf4038
commit 5c12180b58
3 changed files with 63 additions and 25 deletions

View file

@ -6,27 +6,42 @@ set(EXTERNAL_NAME nvtt)
string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER)
if (NOT ANDROID)
ExternalProject_Add(
${EXTERNAL_NAME}
URL http://hifi-public.s3.amazonaws.com/dependencies/nvidia-texture-tools-2.1.0.zip
URL_MD5 79842ea185c8c95aaa70cee91e77f032
CONFIGURE_COMMAND CMAKE_ARGS ${ANDROID_CMAKE_ARGS} -DNVTT_SHARED=0 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
LOG_DOWNLOAD 1
LOG_CONFIGURE 1
LOG_BUILD 1
)
if (WIN32)
ExternalProject_Add(
${EXTERNAL_NAME}
URL http://s3.amazonaws.com/hifi-public/dependencies/nvtt-win-2.1.0.zip
URL_MD5 3ea6eeadbcc69071acf9c49ba565760e
LOG_DOWNLOAD 1
)
ExternalProject_Get_Property(${EXTERNAL_NAME} SOURCE_DIR)
set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${SOURCE_DIR}/Release/x64/nvtt.lib CACHE FILEPATH "Path to NVTT static release library")
set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${SOURCE_DIR}/Debug/x64/nvtt.lib CACHE FILEPATH "Path to NVTT static debug library")
set(${EXTERNAL_NAME_UPPER}_DLL_PATH "${SOURCE_DIR}/$<$<CONFIG:Debug>:Debug>$<$<NOT:$<CONFIG:Debug>>:Release>/x64" CACHE PATH "Location of NVTT DLL")
else ()
ExternalProject_Add(
${EXTERNAL_NAME}
URL http://hifi-public.s3.amazonaws.com/dependencies/nvidia-texture-tools-2.1.0.zip
URL_MD5 79842ea185c8c95aaa70cee91e77f032
CONFIGURE_COMMAND CMAKE_ARGS ${ANDROID_CMAKE_ARGS} -DNVTT_SHARED=0 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
LOG_DOWNLOAD 1
LOG_CONFIGURE 1
LOG_BUILD 1
)
ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR)
set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${INSTALL_DIR}/include CACHE PATH "Location of NVTT include directory")
set(${EXTERNAL_NAME_UPPER}_BASE_LIBRARY ${INSTALL_DIR}/lib/static/libnvtt.a CACHE FILEPATH "Path to NVTT base static library")
set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY ${INSTALL_DIR}/lib/static/libnvcore.a CACHE FILEPATH "Path to NVTT core static library")
set(${EXTERNAL_NAME_UPPER}_IMAGE_LIBRARY ${INSTALL_DIR}/lib/static/libnvimage.a CACHE FILEPATH "Path to NVTT image static library")
set(${EXTERNAL_NAME_UPPER}_MATH_LIBRARY ${INSTALL_DIR}/lib/static/libnvmath.a CACHE FILEPATH "Path to NVTT math static library")
set(${EXTERNAL_NAME_UPPER}_THREAD_LIBRARY ${INSTALL_DIR}/lib/static/libnvthread.a CACHE FILEPATH "Path to NVTT thread static library")
endif ()
# Hide this external target (for IDE users)
set_target_properties(${EXTERNAL_NAME} PROPERTIES FOLDER "hidden/externals")
ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR)
set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${INSTALL_DIR}/include CACHE PATH "Location of NVTT include directory")
if (WIN32)
set(${EXTERNAL_NAME_UPPER}_LIBRARY ${INSTALL_DIR}/lib/static/libnvtt.a CACHE FILEPATH "Path to NVTT static library")
else ()
set(${EXTERNAL_NAME_UPPER}_LIBRARY ${INSTALL_DIR}/lib/static/libnvtt.a CACHE FILEPATH "Path to NVTT static library")
endif ()
endif()

View file

@ -6,7 +6,8 @@
#
# NVTT_FOUND
# NVTT_INCLUDE_DIRS
# NVTT_LIBRARY
# NVTT_LIBRARIES
# NVTT_DLL_PATH
#
# Created on 4/14/2017 by Stephen Birarda
# Copyright 2017 High Fidelity, Inc.
@ -20,7 +21,28 @@ hifi_library_search_hints("nvtt")
find_path(NVTT_INCLUDE_DIRS nvtt/nvtt.h PATH_SUFFIXES include HINTS ${NVTT_SEARCH_DIRS})
find_library(NVTT_LIBRARY nvtt PATH_SUFFIXES "lib/static" HINTS ${NVTT_SEARCH_DIRS})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(NVTT DEFAULT_MSG NVTT_INCLUDE_DIRS NVTT_LIBRARY)
if (WIN32)
find_library(NVTT_LIBRARY_RELEASE nvtt PATH_SUFFIXES "Release.x64/lib" HINTS ${NVTT_SEARCH_DIRS})
find_library(NVTT_LIBRARY_DEBUG nvtt PATH_SUFFIXES "Debug.x64/lib" HINTS ${NVTT_SEARCH_DIRS})
find_path(NVTT_RELEASE_DLL_PATH nvtt.dll PATH_SUFFIXES "Release.x64/bin" HINTS ${NVTT_SEARCH_DIRS})
find_path(NVTT_DEBUG_DLL_PATH nvtt.dll PATH_SUFFIXES "Debug.x64/lib" HINTS ${NVTT_SEARCH_DIRS})
include(SelectLibraryConfigurations)
select_library_configurations(NVTT)
find_package_handle_standard_args(NVTT DEFAULT_MSG NVTT_INCLUDE_DIRS NVTT_LIBRARIES NVTT_RELEASE_DLL_PATH NVTT_DEBUG_DLL_PATH)
set(NVTT_DLL_PATH "$<$<NOT:$<CONFIG:Debug>>:${NVTT_RELEASE_DLL_PATH}>$<$<CONFIG:Debug>:${NVTT_DEBUG_DLL_PATH}>")
else ()
find_library(NVTT_BASE_LIBRARY nvtt PATH_SUFFIXES "lib/static" HINTS ${NVTT_SEARCH_DIRS})
find_library(NVTT_CORE_LIBRARY nvcore PATH_SUFFIXES "lib/static" HINTS ${NVTT_SEARCH_DIRS})
find_library(NVTT_IMAGE_LIBRARY nvimage PATH_SUFFIXES "lib/static" HINTS ${NVTT_SEARCH_DIRS})
find_library(NVTT_MATH_LIBRARY nvmath PATH_SUFFIXES "lib/static" HINTS ${NVTT_SEARCH_DIRS})
find_library(NVTT_THREAD_LIBRARY nvthread PATH_SUFFIXES "lib/static" HINTS ${NVTT_SEARCH_DIRS})
find_package_handle_standard_args(NVTT DEFAULT_MSG NVTT_INCLUDE_DIRS NVTT_BASE_LIBRARY NVTT_CORE_LIBRARY NVTT_IMAGE_LIBRARY NVTT_MATH_LIBRARY NVTT_THREAD_LIBRARY)
set(NVTT_LIBRARIES ${NVTT_BASE_LIBRARY} ${NVTT_CORE_LIBRARY} ${NVTT_IMAGE_LIBRARY} ${NVTT_MATH_LIBRARY} ${NVTT_THREAD_LIBRARY})
endif ()

View file

@ -7,4 +7,5 @@ target_glm()
add_dependency_external_projects(nvtt)
find_package(NVTT REQUIRED)
target_include_directories(${TARGET_NAME} PRIVATE ${NVTT_INCLUDE_DIRS})
target_link_libraries(${TARGET_NAME} ${NVTT_LIBRARY})
target_link_libraries(${TARGET_NAME} ${NVTT_LIBRARIES})
add_paths_to_fixup_libs(${NVTT_DLL_PATH})