FindTecIO.cmake 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # FindTecIO
  2. # 防止重复引入
  3. if(GJDM_TecIO_ALREADY_INCLUDED)
  4. return()
  5. endif()
  6. set(GJDM_TecIO_ALREADY_INCLUDED 1)
  7. # find_path 搜索包含某个文件的路径
  8. # 如果在某个路径下发现了该文件,该结果会被存储到该变量中;如果没有找到,存储的结果将会是<VAR>-NOTFOUND
  9. find_path(TecIO_DIRS
  10. NAMES
  11. include/TECIO.h
  12. PATHS
  13. ${CMAKE_SOURCE_DIR}/extlib/TecIO
  14. NO_SYSTEM_ENVIRONMENT_PATH
  15. NO_CMAKE_SYSTEM_PATH
  16. )
  17. set(TecIO_VERSION_MAJOR 1)
  18. set(TecIO_VERSION_MINOR 4)
  19. set(TecIO_VERSION_PATCH 2)
  20. set(TecIO_VERSION "${TecIO_VERSION_MAJOR}.${TecIO_VERSION_MINOR}.${TecIO_VERSION_PATCH}")
  21. find_path(TecIO_INCLUDE_DIRS
  22. NAMES
  23. TECIO.h
  24. HINTS
  25. ${TecIO_DIRS}/include
  26. )
  27. find_path(TecIO_LIBRARY_DIRS
  28. NAMES
  29. tecio.lib libtecio.so
  30. HINTS
  31. ${TecIO_DIRS}/lib
  32. )
  33. set(TecIO_LIBRARIES GJDM::TECIO)
  34. add_library(GJDM::TECIO SHARED IMPORTED)
  35. set_property(TARGET GJDM::TECIO PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${TecIO_INCLUDE_DIRS})
  36. set_property(TARGET GJDM::TECIO APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
  37. if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
  38. set_target_properties(GJDM::TECIO PROPERTIES
  39. IMPORTED_LOCATION_RELEASE "${TecIO_LIBRARY_DIRS}/libtecio.so"
  40. #IMPORTED_SONAME_RELEASE "${TecIO_LIBRARY_DIRS}/libtecio.so"
  41. )
  42. elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
  43. set_target_properties(GJDM::TECIO PROPERTIES
  44. IMPORTED_IMPLIB_RELEASE "${TecIO_LIBRARY_DIRS}/tecio.lib"
  45. IMPORTED_LOCATION_RELEASE "${TecIO_DIRS}/bin/tecio.dll"
  46. )
  47. endif()
  48. include(FindPackageHandleStandardArgs)
  49. # 如果找到所有需要的变量,并且版本匹配,则将TecIO_FOUND变量设置为TRUE
  50. find_package_handle_standard_args(TecIO
  51. FOUND_VAR
  52. TecIO_FOUND
  53. REQUIRED_VARS
  54. TecIO_DIRS
  55. TecIO_INCLUDE_DIRS
  56. TecIO_LIBRARY_DIRS
  57. TecIO_LIBRARIES
  58. VERSION_VAR
  59. TecIO_VERSION
  60. )