FindMiles.cmake 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. # Filename: FindMiles.cmake
  2. # Author: kestred (9 Dec, 2013)
  3. #
  4. # Usage:
  5. # find_package(Miles [REQUIRED] [QUIET])
  6. #
  7. # Once done this will define:
  8. # MILES_FOUND - system has Radgame's Miles SDK
  9. # RAD_MSS_FOUND - system has Radgame's Miles SDK
  10. # MILES_INCLUDE_DIR - the Miles SDK include directory
  11. # MILES_LIBRARY_DIR - the Miles SDK library directory
  12. # MILES_LIBRARY - the path to the library binary
  13. #
  14. # MILES_RELEASE_LIBRARY - the filepath of the Miles SDK release library
  15. # MILES_RELDBG_LIBRARY - the filepath of the Miles SDK optimize debug library
  16. # MILES_MINSIZE_LIBRARY - the filepath of the Miles SDK minimum size library
  17. # MILES_DEBUG_LIBRARY - the filepath of the Miles SDK debug library
  18. #
  19. if(NOT MILES_INCLUDE_DIR OR NOT MILES_LIBRARY_DIR)
  20. # Find the Miles SDK include files
  21. find_path(MILES_INCLUDE_DIR
  22. NAMES "miles.h"
  23. PATHS "/usr/include"
  24. "/usr/local/include"
  25. "/opt/"
  26. "C:/Program Files"
  27. "C:/Program Files (x86)"
  28. PATH_SUFFIXES "" "miles" "Miles6" "miles/include" "Miles6/include"
  29. DOC "The path to the Miles SDK include directory."
  30. )
  31. # Find the Miles SDK libraries (.a, .so)
  32. find_library(MILES_RELEASE_LIBRARY
  33. NAMES "miles"
  34. PATHS "/usr"
  35. "/usr/local"
  36. "/opt/miles"
  37. "/opt/Miles6"
  38. "C:/Program Files/miles"
  39. "C:/Program Files (x86)/miles"
  40. "C:/Program Files/Miles6"
  41. "C:/Program Files (x86)/Miles6"
  42. PATH_SUFFIXES "lib" "lib32"
  43. )
  44. find_library(MILES_MINSIZE_LIBRARY
  45. NAMES "miles_s"
  46. PATHS "/usr"
  47. "/usr/local"
  48. "/opt/miles"
  49. "C:/Program Files/miles"
  50. "C:/Program Files (x86)/miles"
  51. "C:/Program Files/Miles6"
  52. "C:/Program Files (x86)/Miles6"
  53. PATH_SUFFIXES "lib" "lib32"
  54. )
  55. find_library(MILES_RELWITHDEBINFO_LIBRARY
  56. NAMES "miles_rd"
  57. PATHS "/usr"
  58. "/usr/local"
  59. "/opt/miles"
  60. "C:/Program Files/miles"
  61. "C:/Program Files (x86)/miles"
  62. "C:/Program Files/Miles6"
  63. "C:/Program Files (x86)/Miles6"
  64. PATH_SUFFIXES "lib" "lib32"
  65. )
  66. find_library(MILES_DEBUG_LIBRARY
  67. NAMES "miles_d"
  68. PATHS "/usr"
  69. "/usr/local"
  70. "/opt/miles"
  71. "C:/Program Files/miles"
  72. "C:/Program Files (x86)/miles"
  73. "C:/Program Files/Miles6"
  74. "C:/Program Files (x86)/Miles6"
  75. PATH_SUFFIXES "lib" "lib32"
  76. )
  77. # Choose library
  78. if(CMAKE_BUILD_TYPE MATCHES "Release" AND MILES_RELEASE_LIBRARY)
  79. set(MILES_LIBRARY ${MILES_RELEASE_LIBRARY} CACHE FILEPATH "The Miles SDK library file.")
  80. elseif(CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo" AND MILES_RELDBG_LIBRARY)
  81. set(MILES_LIBRARY ${MILES_RELWITHDEBINFO_LIBRARY} CACHE FILEPATH "The Miles SDK library file.")
  82. elseif(CMAKE_BUILD_TYPE MATCHES "MinSizeRel" AND MILES_MINSIZE_LIBRARY)
  83. set(MILES_LIBRARY ${MILES_MINSIZE_LIBRARY} CACHE FILEPATH "The Miles SDK library file.")
  84. elseif(CMAKE_BUILD_TYPE MATCHES "Debug" AND MILES_DEBUG_LIBRARY)
  85. set(MILES_LIBRARY ${MILES_DEBUG_LIBRARY} CACHE FILEPATH "The Miles SDK library file.")
  86. endif()
  87. # Set library path
  88. get_filename_component(MILES_LIBRARY_DIR "${MILES_LIBRARY}" PATH)
  89. set(MILES_LIBRARY_DIR "${MILES_LIBRARY_DIR}" CACHE PATH "The path to the Miles SDK library directory.")
  90. # Check if we have everything we need
  91. if(MILES_INCLUDE_DIR AND MILES_LIBRARY_DIR)
  92. set(FOUND_MILES TRUE)
  93. set(MILES_LIBS Mss32)
  94. endif()
  95. mark_as_advanced(MILES_INCLUDE_DIR)
  96. mark_as_advanced(MILES_DEBUG_LIBRARY)
  97. mark_as_advanced(MILES_RELEASE_LIBRARY)
  98. mark_as_advanced(MILES_RELWITHDEBINFO_LIBRARY)
  99. mark_as_advanced(MILES_MINSIZE_LIBRARY)
  100. endif()
  101. # Choose library
  102. if(CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo" AND MILES_RELDBG_LIBRARY)
  103. unset(MILES_LIBRARY CACHE)
  104. set(MILES_LIBRARY ${MILES_RELDBG_LIBRARY} CACHE FILEPATH "The Miles SDK library file.")
  105. elseif(CMAKE_BUILD_TYPE MATCHES "MinSizeRel" AND MILES_MINSIZE_LIBRARY)
  106. unset(MILES_LIBRARY CACHE)
  107. set(MILES_LIBRARY ${MILES_MINSIZE_LIBRARY} CACHE FILEPATH "The Miles SDK library file.")
  108. elseif(CMAKE_BUILD_TYPE MATCHES "Debug" AND MILES_DEBUG_LIBRARY)
  109. unset(MILES_LIBRARY CACHE)
  110. set(MILES_LIBRARY ${MILES_DEBUG_LIBRARY} CACHE FILEPATH "The Miles SDK library file.")
  111. elseif(MILES_RELEASE_LIBRARY)
  112. unset(MILES_LIBRARY CACHE)
  113. set(MILES_LIBRARY ${MILES_RELEASE_LIBRARY} CACHE FILEPATH "The Miles SDK library file.")
  114. endif()
  115. # Set library path
  116. if(DEFINED MILES_LIBRARY)
  117. unset(MILES_LIBRARY_DIR CACHE)
  118. get_filename_component(MILES_LIBRARY_DIR "${MILES_LIBRARY}" PATH)
  119. set(MILES_LIBRARY_DIR "${MILES_LIBRARY_DIR}" CACHE PATH "The path to the Miles SDK library directory.")
  120. endif()
  121. mark_as_advanced(MILES_LIBRARY)
  122. mark_as_advanced(MILES_LIBRARY_DIR)
  123. include(FindPackageHandleStandardArgs)
  124. find_package_handle_standard_args(Miles DEFAULT_MSG MILES_LIBRARY MILES_INCLUDE_DIR MILES_LIBRARY_DIR)