diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b006c509150c..ed2a07217b4f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -387,6 +387,7 @@ install(FILES ${CMAKE_BINARY_DIR}/etc/gitinfo.txt DESTINATION ${CMAKE_INSTALL_SY #---Recurse into the given subdirectories. This does not actually cause another cmake executable # to run. The same process will walk through the project's entire directory structure. +add_subdirectory (builtins/libtextinput) # hard coded builtin for core add_subdirectory (core) add_subdirectory (math) add_subdirectory (hist) diff --git a/builtins/libtextinput/CMakeLists.txt b/builtins/libtextinput/CMakeLists.txt new file mode 100644 index 0000000000000..935774880ae7e --- /dev/null +++ b/builtins/libtextinput/CMakeLists.txt @@ -0,0 +1,35 @@ +# Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. +# All rights reserved. +# +# For the licensing terms see $ROOTSYS/LICENSE. +# For the list of contributors see $ROOTSYS/README/CREDITS. + +############################################################################ +# CMakeLists.txt file for building textinput package for ROOT +############################################################################ + +add_library(textinput STATIC) + +target_sources(textinput PRIVATE + Editor.cpp + History.cpp + KeyBinding.cpp + Range.cpp + SignalHandler.cpp + StreamReader.cpp + StreamReaderUnix.cpp + StreamReaderWin.cpp + TerminalConfigUnix.cpp + TerminalDisplay.cpp + TerminalDisplayUnix.cpp + TerminalDisplayWin.cpp + TextInputContext.cpp + TextInput.cpp + UTF8.cpp +) + +target_include_directories(textinput + PUBLIC + ./ # to be able to call #include "textinput/header.h" from ROOT core files +) +set_property(TARGET textinput PROPERTY POSITION_INDEPENDENT_CODE ON) diff --git a/core/textinput/src/textinput/Editor.cpp b/builtins/libtextinput/Editor.cpp similarity index 100% rename from core/textinput/src/textinput/Editor.cpp rename to builtins/libtextinput/Editor.cpp diff --git a/core/textinput/src/textinput/History.cpp b/builtins/libtextinput/History.cpp similarity index 100% rename from core/textinput/src/textinput/History.cpp rename to builtins/libtextinput/History.cpp diff --git a/core/textinput/src/textinput/KeyBinding.cpp b/builtins/libtextinput/KeyBinding.cpp similarity index 100% rename from core/textinput/src/textinput/KeyBinding.cpp rename to builtins/libtextinput/KeyBinding.cpp diff --git a/core/textinput/src/textinput/LICENSE.TXT b/builtins/libtextinput/LICENSE.TXT similarity index 100% rename from core/textinput/src/textinput/LICENSE.TXT rename to builtins/libtextinput/LICENSE.TXT diff --git a/core/textinput/src/textinput/Range.cpp b/builtins/libtextinput/Range.cpp similarity index 100% rename from core/textinput/src/textinput/Range.cpp rename to builtins/libtextinput/Range.cpp diff --git a/core/textinput/src/textinput/SignalHandler.cpp b/builtins/libtextinput/SignalHandler.cpp similarity index 100% rename from core/textinput/src/textinput/SignalHandler.cpp rename to builtins/libtextinput/SignalHandler.cpp diff --git a/core/textinput/src/textinput/StreamReader.cpp b/builtins/libtextinput/StreamReader.cpp similarity index 100% rename from core/textinput/src/textinput/StreamReader.cpp rename to builtins/libtextinput/StreamReader.cpp diff --git a/core/textinput/src/textinput/StreamReaderUnix.cpp b/builtins/libtextinput/StreamReaderUnix.cpp similarity index 100% rename from core/textinput/src/textinput/StreamReaderUnix.cpp rename to builtins/libtextinput/StreamReaderUnix.cpp diff --git a/core/textinput/src/textinput/StreamReaderWin.cpp b/builtins/libtextinput/StreamReaderWin.cpp similarity index 100% rename from core/textinput/src/textinput/StreamReaderWin.cpp rename to builtins/libtextinput/StreamReaderWin.cpp diff --git a/core/textinput/src/textinput/TerminalConfigUnix.cpp b/builtins/libtextinput/TerminalConfigUnix.cpp similarity index 100% rename from core/textinput/src/textinput/TerminalConfigUnix.cpp rename to builtins/libtextinput/TerminalConfigUnix.cpp diff --git a/core/textinput/src/textinput/TerminalDisplay.cpp b/builtins/libtextinput/TerminalDisplay.cpp similarity index 100% rename from core/textinput/src/textinput/TerminalDisplay.cpp rename to builtins/libtextinput/TerminalDisplay.cpp diff --git a/core/textinput/src/textinput/TerminalDisplayUnix.cpp b/builtins/libtextinput/TerminalDisplayUnix.cpp similarity index 100% rename from core/textinput/src/textinput/TerminalDisplayUnix.cpp rename to builtins/libtextinput/TerminalDisplayUnix.cpp diff --git a/core/textinput/src/textinput/TerminalDisplayWin.cpp b/builtins/libtextinput/TerminalDisplayWin.cpp similarity index 100% rename from core/textinput/src/textinput/TerminalDisplayWin.cpp rename to builtins/libtextinput/TerminalDisplayWin.cpp diff --git a/core/textinput/src/textinput/TextInput.cpp b/builtins/libtextinput/TextInput.cpp similarity index 100% rename from core/textinput/src/textinput/TextInput.cpp rename to builtins/libtextinput/TextInput.cpp diff --git a/core/textinput/src/textinput/TextInputContext.cpp b/builtins/libtextinput/TextInputContext.cpp similarity index 100% rename from core/textinput/src/textinput/TextInputContext.cpp rename to builtins/libtextinput/TextInputContext.cpp diff --git a/core/textinput/src/textinput/UTF8.cpp b/builtins/libtextinput/UTF8.cpp similarity index 100% rename from core/textinput/src/textinput/UTF8.cpp rename to builtins/libtextinput/UTF8.cpp diff --git a/core/textinput/src/textinput/doc/examplemain.cpp b/builtins/libtextinput/doc/examplemain.cpp similarity index 100% rename from core/textinput/src/textinput/doc/examplemain.cpp rename to builtins/libtextinput/doc/examplemain.cpp diff --git a/core/textinput/src/textinput/doc/textinput.txt b/builtins/libtextinput/doc/textinput.txt similarity index 100% rename from core/textinput/src/textinput/doc/textinput.txt rename to builtins/libtextinput/doc/textinput.txt diff --git a/core/textinput/src/textinput/Callbacks.h b/builtins/libtextinput/textinput/Callbacks.h similarity index 100% rename from core/textinput/src/textinput/Callbacks.h rename to builtins/libtextinput/textinput/Callbacks.h diff --git a/core/textinput/src/textinput/Color.h b/builtins/libtextinput/textinput/Color.h similarity index 100% rename from core/textinput/src/textinput/Color.h rename to builtins/libtextinput/textinput/Color.h diff --git a/core/textinput/src/textinput/Display.h b/builtins/libtextinput/textinput/Display.h similarity index 100% rename from core/textinput/src/textinput/Display.h rename to builtins/libtextinput/textinput/Display.h diff --git a/core/textinput/src/textinput/Editor.h b/builtins/libtextinput/textinput/Editor.h similarity index 100% rename from core/textinput/src/textinput/Editor.h rename to builtins/libtextinput/textinput/Editor.h diff --git a/core/textinput/src/textinput/History.h b/builtins/libtextinput/textinput/History.h similarity index 100% rename from core/textinput/src/textinput/History.h rename to builtins/libtextinput/textinput/History.h diff --git a/core/textinput/src/textinput/InputData.h b/builtins/libtextinput/textinput/InputData.h similarity index 100% rename from core/textinput/src/textinput/InputData.h rename to builtins/libtextinput/textinput/InputData.h diff --git a/core/textinput/src/textinput/KeyBinding.h b/builtins/libtextinput/textinput/KeyBinding.h similarity index 100% rename from core/textinput/src/textinput/KeyBinding.h rename to builtins/libtextinput/textinput/KeyBinding.h diff --git a/core/textinput/src/textinput/Range.h b/builtins/libtextinput/textinput/Range.h similarity index 100% rename from core/textinput/src/textinput/Range.h rename to builtins/libtextinput/textinput/Range.h diff --git a/core/textinput/src/textinput/Reader.h b/builtins/libtextinput/textinput/Reader.h similarity index 100% rename from core/textinput/src/textinput/Reader.h rename to builtins/libtextinput/textinput/Reader.h diff --git a/core/textinput/src/textinput/SignalHandler.h b/builtins/libtextinput/textinput/SignalHandler.h similarity index 100% rename from core/textinput/src/textinput/SignalHandler.h rename to builtins/libtextinput/textinput/SignalHandler.h diff --git a/core/textinput/src/textinput/StreamReader.h b/builtins/libtextinput/textinput/StreamReader.h similarity index 100% rename from core/textinput/src/textinput/StreamReader.h rename to builtins/libtextinput/textinput/StreamReader.h diff --git a/core/textinput/src/textinput/StreamReaderUnix.h b/builtins/libtextinput/textinput/StreamReaderUnix.h similarity index 100% rename from core/textinput/src/textinput/StreamReaderUnix.h rename to builtins/libtextinput/textinput/StreamReaderUnix.h diff --git a/core/textinput/src/textinput/StreamReaderWin.h b/builtins/libtextinput/textinput/StreamReaderWin.h similarity index 100% rename from core/textinput/src/textinput/StreamReaderWin.h rename to builtins/libtextinput/textinput/StreamReaderWin.h diff --git a/core/textinput/src/textinput/TerminalConfigUnix.h b/builtins/libtextinput/textinput/TerminalConfigUnix.h similarity index 100% rename from core/textinput/src/textinput/TerminalConfigUnix.h rename to builtins/libtextinput/textinput/TerminalConfigUnix.h diff --git a/core/textinput/src/textinput/TerminalDisplay.h b/builtins/libtextinput/textinput/TerminalDisplay.h similarity index 100% rename from core/textinput/src/textinput/TerminalDisplay.h rename to builtins/libtextinput/textinput/TerminalDisplay.h diff --git a/core/textinput/src/textinput/TerminalDisplayUnix.h b/builtins/libtextinput/textinput/TerminalDisplayUnix.h similarity index 100% rename from core/textinput/src/textinput/TerminalDisplayUnix.h rename to builtins/libtextinput/textinput/TerminalDisplayUnix.h diff --git a/core/textinput/src/textinput/TerminalDisplayWin.h b/builtins/libtextinput/textinput/TerminalDisplayWin.h similarity index 100% rename from core/textinput/src/textinput/TerminalDisplayWin.h rename to builtins/libtextinput/textinput/TerminalDisplayWin.h diff --git a/core/textinput/src/textinput/Text.h b/builtins/libtextinput/textinput/Text.h similarity index 100% rename from core/textinput/src/textinput/Text.h rename to builtins/libtextinput/textinput/Text.h diff --git a/core/textinput/src/textinput/TextInput.h b/builtins/libtextinput/textinput/TextInput.h similarity index 100% rename from core/textinput/src/textinput/TextInput.h rename to builtins/libtextinput/textinput/TextInput.h diff --git a/core/textinput/src/textinput/TextInputContext.h b/builtins/libtextinput/textinput/TextInputContext.h similarity index 100% rename from core/textinput/src/textinput/TextInputContext.h rename to builtins/libtextinput/textinput/TextInputContext.h diff --git a/core/textinput/src/textinput/UTF8.h b/builtins/libtextinput/textinput/UTF8.h similarity index 100% rename from core/textinput/src/textinput/UTF8.h rename to builtins/libtextinput/textinput/UTF8.h diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake index b811226e9687e..836ce20df7649 100644 --- a/cmake/modules/RootMacros.cmake +++ b/cmake/modules/RootMacros.cmake @@ -621,21 +621,24 @@ function(ROOT_GENERATE_DICTIONARY dictionary) endif() #---Get the library and module dependencies----------------- - if(ARG_DEPENDENCIES) - foreach(dep ${ARG_DEPENDENCIES}) - # Whether provides a dictionary/pcm is decided at generation time - # via $>, so the '-m' flag and the module-file - # dependency below are independent of configuration order and expand to - # nothing for a dictionary-less library. - set(dep_has_dict "$") - set(dependent_pcm ${libprefix}${dep}_rdict.pcm) - if (runtime_cxxmodules AND NOT dep IN_LIST local_no_cxxmodules) - set(dependent_pcm ${dep}.pcm) - list(APPEND pcm_dependencies "$<${dep_has_dict}:$>") - endif() - set(newargs ${newargs} "$<${dep_has_dict}:-m>" "$<${dep_has_dict}:${dependent_pcm}>") - endforeach() - endif() + # Every dictionary implicitly depends on Core's pcm, except the one for Core itself. + if(ARG_MODULE AND NOT ARG_MODULE STREQUAL "Core") + list(INSERT ARG_DEPENDENCIES 0 Core) + list(REMOVE_DUPLICATES ARG_DEPENDENCIES) + endif() + foreach(dep ${ARG_DEPENDENCIES}) + # Whether provides a dictionary/pcm is decided at generation time + # via $>, so the '-m' flag and the module-file + # dependency below are independent of configuration order and expand to + # nothing for a dictionary-less library. + set(dep_has_dict "$") + set(dependent_pcm ${libprefix}${dep}_rdict.pcm) + if (runtime_cxxmodules AND NOT dep IN_LIST local_no_cxxmodules) + set(dependent_pcm ${dep}.pcm) + list(APPEND pcm_dependencies "$<${dep_has_dict}:$>") + endif() + set(newargs ${newargs} "$<${dep_has_dict}:-m>" "$<${dep_has_dict}:${dependent_pcm}>") + endforeach() if(cpp_module_file) set(newargs -cxxmodule ${newargs}) diff --git a/core/textinput/CMakeLists.txt b/core/textinput/CMakeLists.txt index e1e8f487e070f..1eca468a751b5 100644 --- a/core/textinput/CMakeLists.txt +++ b/core/textinput/CMakeLists.txt @@ -13,21 +13,6 @@ set_property(TARGET Core APPEND PROPERTY DICT_HEADERS Getline.h) target_sources(Core PRIVATE src/Getline_color.cxx src/Getline.cxx - src/textinput/Editor.cpp - src/textinput/History.cpp - src/textinput/KeyBinding.cpp - src/textinput/Range.cpp - src/textinput/SignalHandler.cpp - src/textinput/StreamReader.cpp - src/textinput/StreamReaderUnix.cpp - src/textinput/StreamReaderWin.cpp - src/textinput/TerminalConfigUnix.cpp - src/textinput/TerminalDisplay.cpp - src/textinput/TerminalDisplayUnix.cpp - src/textinput/TerminalDisplayWin.cpp - src/textinput/TextInputContext.cpp - src/textinput/TextInput.cpp - src/textinput/UTF8.cpp ) target_include_directories(Core @@ -37,4 +22,6 @@ target_include_directories(Core src ) +target_link_libraries(Core PRIVATE textinput) + ROOT_INSTALL_HEADERS() diff --git a/documentation/doxygen/Doxyfile b/documentation/doxygen/Doxyfile index 363a5fc785118..183d724ee08f3 100644 --- a/documentation/doxygen/Doxyfile +++ b/documentation/doxygen/Doxyfile @@ -1085,7 +1085,6 @@ EXCLUDE = ../../interpreter/ \ ../../core/lzma/ \ ../../core/lz4/ \ ../../core/newdelete/ \ - ../../core/textinput/ \ ../../builtins/ \ ../../documentation/doxygen/html diff --git a/documentation/doxygen/makeinput.sh b/documentation/doxygen/makeinput.sh index a94b19940f085..2e32ceb3fc254 100755 --- a/documentation/doxygen/makeinput.sh +++ b/documentation/doxygen/makeinput.sh @@ -77,6 +77,5 @@ echo " ../../bindings/pyroot/pythonizations/python/ROOT/_pythonization/ # echo " ../../core/clib/ \\" >> Doxyfile_INPUT # echo " ../../core/lzma/ \\" >> Doxyfile_INPUT # echo " ../../core/newdelete/ \\" >> Doxyfile_INPUT -# echo " ../../core/textinput/ \\" >> Doxyfile_INPUT # echo " ../../graf3d/x3d/ \\" >> Doxyfile_INPUT