Skip to content
Snippets Groups Projects
Unverified Commit e7922a67 authored by Jean-Christophe Fillion-Robin's avatar Jean-Christophe Fillion-Robin
Browse files

COMP: Update FTD2XX external project to support reuse from application

Introduce variables FTD2XX_DLL_DIR, FTD2XX_DLL_NAME, FTD2XX_LIB_DIR
and FTD2XX_LIB_NAME for use in application implementing their own
external project including the ones provided by iMSTK.

It ensures the install subdirectory exists when custom location is
specified.
parent 01df91bc
No related branches found
No related tags found
No related merge requests found
......@@ -6,17 +6,32 @@ endif()
include(imstkAddExternalProject)
# Set FTD2XX_SOURCE_DIR
# Set FTD2XX_SOURCE_DIR and FTD2XX_PREFIX
imstk_define_external_dirs( FTD2XX )
# Directories and filenames specific to the FTD2XX archive layout
set(_dll_dir "i386")
set(_dll_name "ftd2xx.dll")
set(_lib_dir "i386")
set(_lib_name "ftd2xx.lib")
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
set(_dll_dir "amd64")
set(_dll_name "ftd2xx64.dll")
set(_lib_dir "amd64")
set(_lib_name "ftd2xx.lib")
endif()
# Directories and filenames specific to the FTD2XX install layout
set(FTD2XX_DLL_DIR "bin")
set(FTD2XX_DLL_NAME "${_dll_name}")
set(FTD2XX_LIB_DIR "lib")
set(FTD2XX_LIB_NAME "${_lib_name}")
#-----------------------------------------------------------------------------
# Set install commands
#-----------------------------------------------------------------------------
set(FTD2XX_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
set(ftd2xx_libdir "i386")
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
set(ftd2xx_libdir "amd64")
if(CMAKE_PROJECT_NAME STREQUAL "iMSTK")
set(FTD2XX_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
endif()
set(copy_ftd2xx_headers_command
......@@ -26,25 +41,36 @@ set(copy_ftd2xx_headers_command
)
set(copy_ftd2xx_lib_command
${CMAKE_COMMAND} -E copy
${FTD2XX_SOURCE_DIR}/${ftd2xx_libdir}/ftd2xx.lib
${FTD2XX_INSTALL_DIR}/lib/ftd2xx.lib
${FTD2XX_SOURCE_DIR}/${_lib_dir}/${_lib_name}
${FTD2XX_INSTALL_DIR}/${FTD2XX_LIB_DIR}/${_lib_name}
)
set(copy_ftd2xx_dll_command
${CMAKE_COMMAND} -E copy
${FTD2XX_SOURCE_DIR}/${ftd2xx_libdir}/ftd2xx64.dll
${FTD2XX_INSTALL_DIR}/bin/ftd2xx64.dll
${FTD2XX_SOURCE_DIR}/${_dll_dir}/${_dll_name}
${FTD2XX_INSTALL_DIR}/${FTD2XX_DLL_DIR}/${_dll_name}
)
# HS 2021-aug-08 Some dependencies expect the dll name to
# be ftd2xx.dll rather than ftd2xx64.dll we're copying here
# to the renamed version as the whole chain is built via 64 bit builds
set(copy_ftd2xx_dll_command_rename
${CMAKE_COMMAND} -E copy
${FTD2XX_SOURCE_DIR}/${ftd2xx_libdir}/ftd2xx64.dll
${FTD2XX_INSTALL_DIR}/bin/ftd2xx.dll
set(FTD2XX_INSTALL_COMMAND
INSTALL_COMMAND
COMMAND ${copy_ftd2xx_headers_command}
COMMAND ${copy_ftd2xx_lib_command}
COMMAND ${copy_ftd2xx_dll_command}
)
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
# HS 2021-aug-08 Some dependencies expect the dll name to
# be ftd2xx.dll rather than ftd2xx64.dll we're copying here
# to the renamed version as the whole chain is built via 64 bit builds
set(copy_ftd2xx_dll_command_rename
${CMAKE_COMMAND} -E copy
${FTD2XX_SOURCE_DIR}/${_lib_dir}/ftd2xx64.dll
${FTD2XX_INSTALL_DIR}/bin/ftd2xx.dll
)
list(APPEND FTD2XX_INSTALL_COMMAND
COMMAND ${copy_ftd2xx_dll_command_rename}
)
endif()
#-----------------------------------------------------------------------------
# Add External Project
......@@ -57,11 +83,7 @@ imstk_add_external_project( FTD2XX
UPDATE_COMMAND ${SKIP_STEP_COMMAND}
CONFIGURE_COMMAND ${SKIP_STEP_COMMAND}
BUILD_COMMAND ${SKIP_STEP_COMMAND}
INSTALL_COMMAND
COMMAND ${copy_ftd2xx_headers_command}
COMMAND ${copy_ftd2xx_lib_command}
COMMAND ${copy_ftd2xx_dll_command}
COMMAND ${copy_ftd2xx_dll_command_rename}
${FTD2XX_INSTALL_COMMAND}
RELATIVE_INCLUDE_PATH "/"
#VERBOSE
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment