IMSTK win10 vs2017 win32 build failed with dependencies

I came across an error when building imstk with VR and Openhaptics
The build output is shown below:

1>------ Build started: Project: FTD2XX, Configuration: Debug Win32 ------
1>Creating directories for 'FTD2XX'
1>Building Custom Rule D:/SimRepo/iMSTK/CMake/External/CMakeLists.txt
1>Performing download step (download, verify and extract) for 'FTD2XX'
1>-- verifying file...
1>       file='D:/SimRepo/iMSTK/build/External/FTD2XX/CDM%20v2.12.18%20WHQL%20Certified.zip'
1>-- File already exists and hash match (skip download):
1>  file='D:/SimRepo/iMSTK/build/External/FTD2XX/CDM%20v2.12.18%20WHQL%20Certified.zip'
1>  MD5='e1a194765d7bcc58968d523484b74140'
1>-- extracting...
1>     src='D:/SimRepo/iMSTK/build/External/FTD2XX/CDM%20v2.12.18%20WHQL%20Certified.zip'
1>     dst='D:/SimRepo/iMSTK/build/External/FTD2XX/ftd2xx-2.12.18'
1>-- extracting... [tar xfz]
1>-- extracting... [analysis]
1>-- extracting... [rename]
1>-- extracting... [clean up]
1>-- extracting... done
1>Performing update step for 'FTD2XX'
1>Skip step
1>No patch step for 'FTD2XX'
1>Performing configure step for 'FTD2XX'
1>Skip step
1>Performing build step for 'FTD2XX'
1>Skip step
1>Performing install step for 'FTD2XX'
1>Error copying file "D:/SimRepo/iMSTK/build/External/FTD2XX/ftd2xx-2.12.18/i386/ftd2xx64.dll" to "D:/SimRepo/iMSTK/build/install/bin/ftd2xx64.dll".
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(209,5): error MSB6006: "cmd.exe" exited with code 1.
1>Done building project "FTD2XX.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

It is quite weird that the i386 need ftd2xx64.dll…
I think there is something wrong with the default cmake configuration…
Anyone can help me?
Thank you very much for your attention to this matter.

Will look into the install step for this ext lib and let you know

Can you try by replacing the .dll install code with the following in the External_FTD2XX.cmake?

if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
  set(copy_ftd2xx_dll_command
  ${CMAKE_COMMAND} -E copy
  ${FTD2XX_EXTRACT_DIR}/${ftd2xx_libdir}/ftd2xx64.dll
  ${CMAKE_INSTALL_PREFIX}/bin/ftd2xx64.dll
  )
else()
  set(copy_ftd2xx_dll_command
  ${CMAKE_COMMAND} -E copy
  ${FTD2XX_EXTRACT_DIR}/${ftd2xx_libdir}/ftd2xx.dll
  ${CMAKE_INSTALL_PREFIX}/bin/ftd2xx.dll
  )
endif()
1 Like

@sreekanth.arikatla
I change the line 43,44 in the cmake file from ftd2xx64.dll to ftd2xx.dll

And it is also working with your code block after deleting the line41-45, which seems like a redundant code snippet.

1 Like