From a328e24536d0479beb052eacebbb781738feb496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Thu, 26 Mar 2015 11:36:31 +0100 Subject: [PATCH] Add CMake options to install examples and documentation separately. --- CMakeLists.txt | 16 ++++++++++++++-- cmake/Macros.cmake | 32 +++++++++++++++++--------------- doc/CMakeLists.txt | 18 ++++++++++-------- examples/cocoa/CMakeLists.txt | 10 ++++++---- 4 files changed, 47 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ce484b3c..48e94543 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,9 +63,21 @@ else() set(SFML_BUILD_EXAMPLES FALSE) endif() +# add options for installing the examples +if(SFML_BUILD_EXAMPLES) + sfml_set_option(SFML_INSTALL_EXAMPLES FALSE BOOL "TRUE to install the SFML examples, FALSE to leave them in the build directory") + sfml_set_option(SFML_INSTALL_EXAMPLES_PREFIX ${INSTALL_MISC_DIR} PATH "Install path prefix, prepended onto example install directory") +endif() + # add an option for building the API documentation sfml_set_option(SFML_BUILD_DOC FALSE BOOL "TRUE to generate the API documentation, FALSE to ignore it") +# add option for installing the API documentation +if(SFML_BUILD_DOC) + sfml_set_option(SFML_INSTALL_DOC FALSE BOOL "TRUE to install the SFML API documentation, FALSE to leave them in the build directory") + sfml_set_option(SFML_INSTALL_DOC_PREFIX ${INSTALL_MISC_DIR} PATH "Install path prefix, prepended onto the documentation install directory") +endif() + # add an option for choosing the OpenGL implementation sfml_set_option(SFML_OPENGL_ES ${OPENGL_ES} BOOL "TRUE to use an OpenGL ES implementation, FALSE to use a desktop OpenGL implementation") @@ -275,8 +287,8 @@ else() COMPONENT devel) endif() -install(FILES license.txt DESTINATION ${INSTALL_MISC_DIR}) -install(FILES readme.txt DESTINATION ${INSTALL_MISC_DIR}) +install(FILES license.txt DESTINATION ./) +install(FILES readme.txt DESTINATION ./) if(NOT SFML_OS_ANDROID) install(FILES cmake/Modules/FindSFML.cmake DESTINATION ${INSTALL_MISC_DIR}/cmake/Modules) endif() diff --git a/cmake/Macros.cmake b/cmake/Macros.cmake index 0cf88266..0b95ee49 100644 --- a/cmake/Macros.cmake +++ b/cmake/Macros.cmake @@ -156,23 +156,25 @@ macro(sfml_add_example target) if(THIS_DEPENDS) target_link_libraries(${target} ${THIS_DEPENDS}) endif() + + if(SFML_INSTALL_EXAMPLES) + # add the install rule + install(TARGETS ${target} + RUNTIME DESTINATION ${SFML_INSTALL_EXAMPLES_PREFIX}/examples/${target} COMPONENT examples + BUNDLE DESTINATION ${SFML_INSTALL_EXAMPLES_PREFIX}/examples/${target} COMPONENT examples) - # add the install rule - install(TARGETS ${target} - RUNTIME DESTINATION ${INSTALL_MISC_DIR}/examples/${target} COMPONENT examples - BUNDLE DESTINATION ${INSTALL_MISC_DIR}/examples/${target} COMPONENT examples) - - # install the example's source code - install(FILES ${THIS_SOURCES} - DESTINATION ${INSTALL_MISC_DIR}/examples/${target} - COMPONENT examples) - - # install the example's resources as well - set(EXAMPLE_RESOURCES "${CMAKE_SOURCE_DIR}/examples/${target}/resources") - if(EXISTS ${EXAMPLE_RESOURCES}) - install(DIRECTORY ${EXAMPLE_RESOURCES} - DESTINATION ${INSTALL_MISC_DIR}/examples/${target} + # install the example's source code + install(FILES ${THIS_SOURCES} + DESTINATION ${SFML_INSTALL_EXAMPLES_PREFIX}/examples/${target} COMPONENT examples) + + # install the example's resources as well + set(EXAMPLE_RESOURCES "${CMAKE_SOURCE_DIR}/examples/${target}/resources") + if(EXISTS ${EXAMPLE_RESOURCES}) + install(DIRECTORY ${EXAMPLE_RESOURCES} + DESTINATION ${SFML_INSTALL_EXAMPLES_PREFIX}/examples/${target} + COMPONENT examples) + endif() endif() endmacro() diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 03cf1d2a..7e1132b4 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -51,12 +51,14 @@ add_custom_target(doc ALL COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${DOXYGEN_INPUT_DIR}) -# setup install rules -install(DIRECTORY ${DOXYGEN_OUTPUT_DIR}/html - DESTINATION ${INSTALL_MISC_DIR}/doc - COMPONENT doc) -if(DOXYGEN_HHC_PROGRAM) - install(FILES ${DOXYGEN_OUTPUT_DIR}/sfml.chm - DESTINATION ${INSTALL_MISC_DIR}/doc +if(SFML_INSTALL_DOC) + # setup install rules + install(DIRECTORY ${DOXYGEN_OUTPUT_DIR}/html + DESTINATION ${SFML_INSTALL_DOC_PREFIX}/doc COMPONENT doc) -endif() + if(DOXYGEN_HHC_PROGRAM) + install(FILES ${DOXYGEN_OUTPUT_DIR}/sfml.chm + DESTINATION ${SFML_INSTALL_DOC_PREFIX}/doc + COMPONENT doc) + endif() +endif() \ No newline at end of file diff --git a/examples/cocoa/CMakeLists.txt b/examples/cocoa/CMakeLists.txt index 6eebf8f3..f6f472c7 100644 --- a/examples/cocoa/CMakeLists.txt +++ b/examples/cocoa/CMakeLists.txt @@ -51,10 +51,12 @@ foreach(XIB ${XIBS}) # deactivated options: --warnings --notices endforeach() -# add install rule -install(TARGETS cocoa - BUNDLE DESTINATION ${INSTALL_MISC_DIR}/examples/cocoa - COMPONENT examples) +if(SFML_INSTALL_EXAMPLES) + # add install rule + install(TARGETS cocoa + BUNDLE DESTINATION ${SFML_INSTALL_EXAMPLES_PREFIX}/examples/cocoa + COMPONENT examples) +endif() # # define the cocoa target