test.cmake 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. if(GENERATOR_TYPE STREQUAL "DEB" OR GENERATOR_TYPE STREQUAL "RPM")
  2. if(GENERATOR_TYPE STREQUAL "DEB")
  3. # false by default
  4. set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS FALSE)
  5. # FIXME can not be tested as libraries first have to be part of a package in order
  6. # to determine their dependencies and we can not be certain if there will be any
  7. set(CPACK_DEBIAN_APPLICATIONS_AUTO_PACKAGE_SHLIBDEPS TRUE)
  8. foreach(dependency_type_ DEPENDS PREDEPENDS ENHANCES BREAKS REPLACES RECOMMENDS SUGGESTS)
  9. string(TOLOWER "${dependency_type_}" lower_dependency_type_)
  10. set(CPACK_DEBIAN_PACKAGE_${dependency_type_} "${lower_dependency_type_}-default, ${lower_dependency_type_}-default-b")
  11. set(CPACK_DEBIAN_APPLICATIONS_PACKAGE_${dependency_type_} "${lower_dependency_type_}-application, ${lower_dependency_type_}-application-b")
  12. set(CPACK_DEBIAN_APPLICATIONS_AUTO_PACKAGE_${dependency_type_} "${lower_dependency_type_}-application, ${lower_dependency_type_}-application-b")
  13. set(CPACK_DEBIAN_HEADERS_PACKAGE_${dependency_type_} "${lower_dependency_type_}-headers")
  14. endforeach()
  15. set(generator_type_suffix_ "IAN") # not entirely compatible...
  16. else() # RPM
  17. # FIXME auto autoprov is not tested at the moment as Ubuntu 15.04 rpmbuild
  18. # does not use them correctly: https://bugs.launchpad.net/rpm/+bug/1475755
  19. set(CPACK_RPM_PACKAGE_AUTOREQ "no")
  20. set(CPACK_RPM_PACKAGE_AUTOPROV "no")
  21. set(CPACK_RPM_APPLICATIONS_AUTO_PACKAGE_AUTOREQPROV "yes")
  22. set(CPACK_RPM_LIBS_AUTO_PACKAGE_AUTOREQPROV "yes")
  23. set(CPACK_RPM_PACKAGE_REQUIRES "depend-default, depend-default-b")
  24. set(CPACK_RPM_APPLICATIONS_PACKAGE_REQUIRES "depend-application, depend-application-b")
  25. set(CPACK_RPM_APPLICATIONS_AUTO_PACKAGE_REQUIRES "depend-application, depend-application-b")
  26. set(CPACK_RPM_HEADERS_PACKAGE_REQUIRES "depend-headers")
  27. endif()
  28. set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PACKAGE_CONFLICTS "conflicts-default, conflicts-default-b")
  29. set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_APPLICATIONS_PACKAGE_CONFLICTS "conflicts-application, conflicts-application-b")
  30. set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_APPLICATIONS_AUTO_PACKAGE_CONFLICTS "conflicts-application, conflicts-application-b")
  31. set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_HEADERS_PACKAGE_CONFLICTS "conflicts-headers")
  32. set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_PACKAGE_PROVIDES "provided-default, provided-default-b")
  33. set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_LIBS_PACKAGE_PROVIDES "provided-lib")
  34. set(CPACK_${GENERATOR_TYPE}${generator_type_suffix_}_LIBS_AUTO_PACKAGE_PROVIDES "provided-lib_auto, provided-lib_auto-b")
  35. endif()
  36. set(CMAKE_BUILD_WITH_INSTALL_RPATH 1)
  37. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.hpp"
  38. "int test_lib();\n")
  39. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.cpp"
  40. "#include \"test_lib.hpp\"\nint test_lib() {return 0;}\n")
  41. add_library(test_lib SHARED "${CMAKE_CURRENT_BINARY_DIR}/test_lib.cpp")
  42. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
  43. "#include \"test_lib.hpp\"\nint main() {return test_lib();}\n")
  44. add_executable(test_prog "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
  45. target_link_libraries(test_prog test_lib)
  46. install(TARGETS test_prog DESTINATION foo COMPONENT applications)
  47. install(TARGETS test_prog DESTINATION foo_auto COMPONENT applications_auto)
  48. install(FILES CMakeLists.txt DESTINATION bar COMPONENT headers)
  49. install(TARGETS test_lib DESTINATION bas COMPONENT libs)
  50. install(TARGETS test_lib DESTINATION bas_auto COMPONENT libs_auto)