changeset 485:daf3aa8b2ddb

CMake: get rid of fakeroot mechanism, closes #674
author David Demelier <markand@malikania.fr>
date Thu, 27 Jul 2017 16:44:57 +0200
parents 69cc48b46dcb
children 0b156b82b8c1
files cmake/IrccdSystem.cmake cmake/function/IrccdBuildHtml.cmake cmake/function/IrccdDefineExecutable.cmake cmake/function/IrccdDefineMan.cmake cmake/function/IrccdDefinePlugin.cmake doc/examples/CMakeLists.txt doc/html/CMakeLists.txt libcommon/CMakeLists.txt
diffstat 8 files changed, 30 insertions(+), 54 deletions(-) [+]
line wrap: on
line diff
--- a/cmake/IrccdSystem.cmake	Thu Feb 16 13:25:08 2017 +0100
+++ b/cmake/IrccdSystem.cmake	Thu Jul 27 16:44:57 2017 +0200
@@ -72,12 +72,6 @@
     set(IRCCD_64BITS FALSE)
 endif ()
 
-set(IRCCD_FAKEROOTDIR ${CMAKE_BINARY_DIR}/fakeroot)
-
-if (NOT EXISTS ${IRCCD_FAKEROOTDIR})
-    file(MAKE_DIRECTORY ${IRCCD_FAKEROOTDIR})
-endif ()
-
 #
 # System identification.
 # -------------------------------------------------------------------
@@ -262,7 +256,11 @@
 check_struct_has_member("struct stat" st_uid sys/stat.h HAVE_STAT_ST_UID)
 
 # Configuration file.
+file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/irccd)
+
 configure_file(
     ${CMAKE_CURRENT_LIST_DIR}/internal/sysconfig.hpp.in
-    ${IRCCD_FAKEROOTDIR}/include/irccd/sysconfig.hpp
+    ${CMAKE_BINARY_DIR}/irccd/sysconfig.hpp
 )
+
+include_directories(${CMAKE_BINARY_DIR})
--- a/cmake/function/IrccdBuildHtml.cmake	Thu Feb 16 13:25:08 2017 +0100
+++ b/cmake/function/IrccdBuildHtml.cmake	Thu Jul 27 16:44:57 2017 +0200
@@ -90,10 +90,10 @@
     string(REGEX REPLACE "^(.*)\\.md$" "\\1" basename ${basename})
 
     file(
-            RELATIVE_PATH
-            baseurl
-            ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/${dirname}
-            ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}
+        RELATIVE_PATH
+        baseurl
+        ${CMAKE_CURRENT_BINARY_DIR}/${dirname}
+        ${CMAKE_CURRENT_BINARY_DIR}/
     )
 
     if (baseurl STREQUAL "")
@@ -134,7 +134,7 @@
 
     # Pandoc the file.
     pandoc(
-        OUTPUT ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/${dirname}/${basename}.html
+        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${dirname}/${basename}.html
         SOURCES
             ${CMAKE_CURRENT_BINARY_DIR}/${dirname}/${basename}.yml
             ${CMAKE_CURRENT_BINARY_DIR}/${dirname}/${basename}.md
@@ -148,13 +148,13 @@
     # Install the documentation file as component if provided.
     if (HTML_COMPONENT)
         install(
-            FILES ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/${dirname}/${basename}.html
+            FILES ${CMAKE_CURRENT_BINARY_DIR}/${dirname}/${basename}.html
             COMPONENT ${HTML_COMPONENT}
             DESTINATION ${WITH_DOCDIR}/${dirname}
         )
     endif ()
 
     if (HTML_OUTPUT_VAR)
-        set(${HTML_OUTPUT_VAR} ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/${dirname}/${basename}.html)
+        set(${HTML_OUTPUT_VAR} ${CMAKE_CURRENT_BINARY_DIR}/${dirname}/${basename}.html)
     endif ()
 endmacro ()
--- a/cmake/function/IrccdDefineExecutable.cmake	Thu Feb 16 13:25:08 2017 +0100
+++ b/cmake/function/IrccdDefineExecutable.cmake	Thu Jul 27 16:44:57 2017 +0200
@@ -54,17 +54,6 @@
     target_compile_definitions(${EXE_TARGET} PRIVATE ${EXE_FLAGS})
     target_link_libraries(${EXE_TARGET} ${EXE_LIBRARIES})
 
-    # use fakeroot for public executables.
-    set_target_properties(
-        ${EXE_TARGET}
-        PROPERTIES
-        RUNTIME_OUTPUT_DIRECTORY ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
-        RUNTIME_OUTPUT_DIRECTORY_DEBUG ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
-        RUNTIME_OUTPUT_DIRECTORY_RELEASE ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
-        RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
-        RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${IRCCD_FAKEROOTDIR}/${WITH_BINDIR}
-    )
-
     install(
         TARGETS ${EXE_TARGET}
         COMPONENT ${EXE_TARGET}
--- a/cmake/function/IrccdDefineMan.cmake	Thu Feb 16 13:25:08 2017 +0100
+++ b/cmake/function/IrccdDefineMan.cmake	Thu Jul 27 16:44:57 2017 +0200
@@ -29,7 +29,7 @@
 function(irccd_define_man file man)
     if (WITH_MAN)
         set(input ${doc_SOURCE_DIR}/man/${file}.in)
-        set(output ${IRCCD_FAKEROOTDIR}/${WITH_MANDIR}/${man}/${file})
+        set(output ${CMAKE_CURRENT_BINARY_DIR}/${file})
         configure_file(${input} ${output} @ONLY)
         install(FILES ${output} DESTINATION ${WITH_MANDIR}/${man})
     endif ()
--- a/cmake/function/IrccdDefinePlugin.cmake	Thu Feb 16 13:25:08 2017 +0100
+++ b/cmake/function/IrccdDefinePlugin.cmake	Thu Jul 27 16:44:57 2017 +0200
@@ -59,11 +59,11 @@
 
     configure_file(
         ${PLG_SCRIPT}
-        ${IRCCD_FAKEROOTDIR}/${WITH_PLUGINDIR}/${name}
+        ${CMAKE_CURRENT_BINARY_DIR}/${name}
     )
 
     install(
-        FILES ${IRCCD_FAKEROOTDIR}/${WITH_PLUGINDIR}/${name}
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/${name}
         COMPONENT ${PLG_NAME}
         DESTINATION ${WITH_PLUGINDIR}
     )
@@ -82,24 +82,6 @@
     endif ()
 
     add_library(plugin-${PLG_NAME} MODULE ${PLG_SOURCES} ${PLG_OUTPUT_DOC} ${PLG_DOCS})
-
-    # Move the target into the native plugin directory and rename it.
-    set_target_properties(
-        plugin-${PLG_NAME}
-        PROPERTIES
-            PREFIX ""
-            OUTPUT_NAME ${PLG_NAME}
-            LIBRARY_OUTPUT_DIRECTORY ${IRCCD_FAKEROOTDIR}/${WITH_NPLUGINDIR}
-    )
-    foreach (c ${CMAKE_CONFIGURATION_TYPES})
-        string(TOUPPER CONFIG ${c})
-        set_target_properties(
-            plugin-${PLG_NAME}
-            PROPERTIES
-                OUTPUT_NAME_${CONFIG} ${PLG_NAME}
-                LIBRARY_OUTPUT_DIRECTORY_${CONFIG} ${IRCCD_FAKEROOTDIR}/${WITH_NPLUGINDIR}
-        )
-    endforeach()
     target_link_libraries(plugin-${PLG_NAME} libirccd)
     install(
         TARGETS plugin-${PLG_NAME}
--- a/doc/examples/CMakeLists.txt	Thu Feb 16 13:25:08 2017 +0100
+++ b/doc/examples/CMakeLists.txt	Thu Jul 27 16:44:57 2017 +0200
@@ -20,12 +20,12 @@
 
 configure_file(
     ${examples_SOURCE_DIR}/irccd.conf.sample
-    ${IRCCD_FAKEROOTDIR}/${WITH_CONFDIR}/irccd.conf
+    ${examples_BINARY_DIR}/irccd.conf
 )
 
 configure_file(
     ${examples_SOURCE_DIR}/irccdctl.conf.sample
-    ${IRCCD_FAKEROOTDIR}/${WITH_CONFDIR}/irccdctl.conf
+    ${examples_BINARY_DIR}/irccdctl.conf
 )
 
 install(
--- a/doc/html/CMakeLists.txt	Thu Feb 16 13:25:08 2017 +0100
+++ b/doc/html/CMakeLists.txt	Thu Jul 27 16:44:57 2017 +0200
@@ -202,6 +202,14 @@
         )
         list(APPEND OUTPUTS ${output})
 
+        # Install this file.
+        file(RELATIVE_PATH basename ${html_SOURCE_DIR} ${file})
+        get_filename_component(dirname ${basename} DIRECTORY)
+        install(
+            FILES ${output}
+            COMPONENT docs
+            DESTINATION ${WITH_DOCDIR}/${dirname}
+        )
     endforeach ()
 
     add_custom_target(
@@ -210,13 +218,13 @@
             ${HTML_SOURCES} ${CSS} ${JS} ${OUTPUTS}
             ${html_SOURCE_DIR}/resources/template.html
         COMMAND
-            ${CMAKE_COMMAND} -E make_directory ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/css
+            ${CMAKE_COMMAND} -E make_directory ${html_BINARY_DIR}/css
         COMMAND
-            ${CMAKE_COMMAND} -E make_directory ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/js
+            ${CMAKE_COMMAND} -E make_directory ${html_BINARY_DIR}/js
         COMMAND
-            ${CMAKE_COMMAND} -E copy ${CSS} ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/css
+            ${CMAKE_COMMAND} -E copy ${CSS} ${html_BINARY_DIR}/css
         COMMAND
-            ${CMAKE_COMMAND} -E copy ${JS} ${IRCCD_FAKEROOTDIR}/${WITH_DOCDIR}/js
+            ${CMAKE_COMMAND} -E copy ${JS} ${html_BINARY_DIR}/js
     )
 
     # Install resources files.
--- a/libcommon/CMakeLists.txt	Thu Feb 16 13:25:08 2017 +0100
+++ b/libcommon/CMakeLists.txt	Thu Jul 27 16:44:57 2017 +0200
@@ -68,8 +68,7 @@
         $<$<BOOL:${WITH_SSL}>:OpenSSL::Crypto>
     PUBLIC_INCLUDES
         ${Boost_INCLUDE_DIRS}
-        $<BUILD_INTERFACE:${IRCCD_FAKEROOTDIR}/include/irccd>
-        $<BUILD_INTERFACE:${IRCCD_FAKEROOTDIR}/include>
+        $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>
         $<BUILD_INTERFACE:${libcommon_SOURCE_DIR}/irccd>
         $<BUILD_INTERFACE:${libcommon_SOURCE_DIR}>
 )