CalamaresAddBrandingSubdirectory.cmake 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. include( CMakeColors )
  2. function( calamares_add_branding_subdirectory )
  3. set( SUBDIRECTORY ${ARGV0} )
  4. if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" )
  5. add_subdirectory( $SUBDIRECTORY )
  6. message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" )
  7. elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" )
  8. set( BRANDING_DIR share/calamares/branding )
  9. set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${SUBDIRECTORY} )
  10. if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" )
  11. message( "-- ${BoldYellow}Warning:${ColorReset} branding component ${BoldRed}${SUBDIRECTORY}${ColorReset} has a translations subdirectory but no CMakeLists.txt." )
  12. message( "" )
  13. return()
  14. endif()
  15. # We glob all the files inside the subdirectory, and we make sure they are
  16. # synced with the bindir structure and installed.
  17. file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" )
  18. foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} )
  19. if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} )
  20. configure_file( ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} COPYONLY )
  21. install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE}
  22. DESTINATION ${BRANDING_COMPONENT_DESTINATION} )
  23. endif()
  24. endforeach()
  25. message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" )
  26. if( NOT CMAKE_BUILD_TYPE STREQUAL "Release" )
  27. message( " ${Green}TYPE:${ColorReset} branding component" )
  28. # message( " ${Green}FILES:${ColorReset} ${BRANDING_COMPONENT_FILES}" )
  29. message( " ${Green}BRANDING_COMPONENT_DESTINATION:${ColorReset} ${BRANDING_COMPONENT_DESTINATION}" )
  30. message( "" )
  31. endif()
  32. else()
  33. message( "-- ${BoldYellow}Warning:${ColorReset} tried to add branding component subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no branding.desc." )
  34. message( "" )
  35. endif()
  36. endfunction()