TARGET_FILE_PREFIX-imported-target.cmake 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. cmake_minimum_required(VERSION 3.14)
  2. enable_language (C)
  3. set (win_platforms Windows CYGWIN)
  4. set (GENERATE_CONTENT [[
  5. macro (CHECK_VALUE test_msg value expected)
  6. if (NOT "${value}" STREQUAL "${expected}")
  7. string (APPEND RunCMake_TEST_FAILED "${test_msg}: actual result:\n [${value}]\nbut expected:\n [${expected}]\n")
  8. endif()
  9. endmacro()
  10. ]])
  11. add_executable(exec1 IMPORTED)
  12. add_library (shared1 SHARED IMPORTED)
  13. add_library (static1 STATIC IMPORTED)
  14. string (APPEND GENERATE_CONTENT
  15. "\ncheck_value (\"TARGET_FILE_PREFIX executable default\" \"$<TARGET_FILE_PREFIX:exec1>\" \"\")
  16. check_value (\"TARGET_FILE_PREFIX shared default\" \"$<TARGET_FILE_PREFIX:shared1>\" \"${CMAKE_SHARED_LIBRARY_PREFIX}\")
  17. check_value (\"TARGET_LINKER_FILE_PREFIX shared linker default\" \"$<TARGET_LINKER_FILE_PREFIX:shared1>\" \"$<IF:$<IN_LIST:$<PLATFORM_ID>,${win_platforms}>,${CMAKE_IMPORT_LIBRARY_PREFIX},${CMAKE_SHARED_LIBRARY_PREFIX}>\")
  18. check_value (\"TARGET_FILE_PREFIX static default\" \"$<TARGET_FILE_PREFIX:static1>\" \"${CMAKE_STATIC_LIBRARY_PREFIX}\")
  19. check_value (\"TARGET_LINKER_FILE_PREFIX static linker default\" \"$<TARGET_LINKER_FILE_PREFIX:static1>\" \"${CMAKE_STATIC_LIBRARY_PREFIX}\")\n")
  20. add_executable (exec2 IMPORTED)
  21. set_property (TARGET exec2 PROPERTY PREFIX exec2_prefix)
  22. set_property (TARGET exec2 PROPERTY ENABLE_EXPORTS TRUE)
  23. set_property (TARGET exec2 PROPERTY IMPORT_PREFIX exec2_import_prefix)
  24. add_library (shared2 SHARED IMPORTED)
  25. set_property (TARGET shared2 PROPERTY PREFIX shared2_prefix)
  26. set_property (TARGET shared2 PROPERTY IMPORT_PREFIX shared2_import_prefix)
  27. add_library (static2 STATIC IMPORTED)
  28. set_property (TARGET static2 PROPERTY PREFIX static2_prefix)
  29. set_property (TARGET static2 PROPERTY IMPORT_PREFIX static2_import_prefix)
  30. string (APPEND GENERATE_CONTENT
  31. "\ncheck_value (\"TARGET_FILE_PREFIX executable custom\" \"$<TARGET_FILE_PREFIX:exec2>\" \"exec2_prefix\")
  32. check_value (\"TARGET_LINKER_FILE_PREFIX executable linker custom\" \"$<TARGET_LINKER_FILE_PREFIX:exec2>\" \"$<IF:$<IN_LIST:$<PLATFORM_ID>,${win_platforms}>,exec2_import_prefix,exec2_prefix>\")
  33. check_value (\"TARGET_FILE_PREFIX shared custom\" \"$<TARGET_FILE_PREFIX:shared2>\" \"shared2_prefix\")
  34. check_value (\"TARGET_LINKER_FILE_PREFIX shared linker custom\" \"$<TARGET_LINKER_FILE_PREFIX:shared2>\" \"$<IF:$<IN_LIST:$<PLATFORM_ID>,${win_platforms}>,shared2_import_prefix,shared2_prefix>\")
  35. check_value (\"TARGET_FILE_PREFIX static custom\" \"$<TARGET_FILE_PREFIX:static2>\" \"static2_prefix\")
  36. check_value (\"TARGET_LINKER_FILE_PREFIX static linker custom\" \"$<TARGET_LINKER_FILE_PREFIX:static2>\" \"static2_prefix\")\n")
  37. file (GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/TARGET_FILE_PREFIX-generated.cmake"
  38. CONTENT "${GENERATE_CONTENT}")