From da208ae4a4d692a8fa74707b10077d129c958110 Mon Sep 17 00:00:00 2001 From: "Daniele E. Domenichelli" Date: Mon, 16 Mar 2020 18:21:58 +0100 Subject: [PATCH 1/3] .appveyor.yml: Install YCM from binary packages --- .appveyor.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 4a78b08bbf1..21b065c5aa4 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -36,7 +36,11 @@ init: - cmd: set TIMEOUT=%SystemRoot%\System32\timeout.exe - # Dependencies found in YARP and iCub packages + # Dependencies found in YCM, YARP and iCub packages + - cmd: set YCM_LATEST=0.11.0 + - cmd: set YCM_LATEST_TAG=v%YCM_LATEST% + - cmd: set YCM_DIR=%ROBOTOLOGY_ROOT%\ycm-%YCM_LATEST% + - cmd: set YARP_LATEST=2.3.70 - cmd: set YARP_LATEST_TAG=v%YARP_LATEST% - cmd: set YARP_LATEST_PKG=1 @@ -78,6 +82,7 @@ init: #- cmd: set PATH=%PATH%;%JPEG_ROOT%\bin # Installers URLs + - cmd: set YCM_INSTALLER=https://github.com/robotology/ycm/releases/download/%YCM_LATEST_TAG%/YCM-%YCM_LATEST%-all.tar.gz - cmd: set YARP_INSTALLER=https://github.com/robotology/yarp/releases/download/%YARP_LATEST_TAG%/yarp_%YARP_LATEST%_%ROBOTOLOGY_VS%_%ROBOTOLOGY_ARCH%_1.exe - cmd: set ICUB_INSTALLER=https://github.com/robotology/icub-main/releases/download/%ICUB_LATEST_TAG%/iCub_%ICUB_LATEST%_%ROBOTOLOGY_VS%_%ROBOTOLOGY_ARCH%_1.exe #- cmd: if "%platform%"=="Win32" set JPEG_INSTALLER=https://sourceforge.net/projects/libjpeg-turbo/files/1.5.1/libjpeg-turbo-1.5.1-vc.exe/download @@ -95,6 +100,12 @@ init: install: - cmd: md C:\downloads + # Get YCM installer + - cmd: echo Downloading %YCM_INSTALLER% + - cmd: appveyor DownloadFile "%YCM_INSTALLER%" -FileName "C:\downloads\ycm.tar.gz" + - cmd: 7z x "C:\downloads\ycm.tar.gz" -so | 7z x -si -ttar > nul + - cmd: move YCM-%YCM_LATEST%-all "%YCM_DIR%" + # Get YARP installer - cmd: echo Downloading %YARP_INSTALLER% - cmd: appveyor DownloadFile "%YARP_INSTALLER%" -FileName "C:\downloads\yarp.exe" From 8eac141c1b2dccf519654b05a1ade27c20a254de Mon Sep 17 00:00:00 2001 From: "Daniele E. Domenichelli" Date: Mon, 16 Mar 2020 22:32:51 +0100 Subject: [PATCH 2/3] .travis.yml: Use docker images with YCM pre-installed --- .travis.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4644e669a1c..8359215b91b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -301,14 +301,15 @@ git: services: - docker before_install: - - docker pull drdanz/cmake:cmake-${TRAVIS_CMAKE_VERSION} + - docker pull drdanz/ycm:cmake-${TRAVIS_CMAKE_VERSION}_ycm-${TRAVIS_YCM_VERSION} - >- docker run -it -d \ -v $TRAVIS_BUILD_DIR:$TRAVIS_BUILD_DIR \ -v $HOME/.ccache:$HOME/.ccache \ -w $TRAVIS_BUILD_DIR \ --name yarp-builder \ - drdanz/cmake:cmake-${TRAVIS_CMAKE_VERSION} + drdanz/ycm:cmake-${TRAVIS_CMAKE_VERSION}_ycm-${TRAVIS_YCM_VERSION} + - >- - docker exec -it yarp-builder cmake --version - docker exec -it yarp-builder mkdir $TRAVIS_BUILD_DIR/build install: skip @@ -469,33 +470,38 @@ matrix: - stage: cmake <<: *cmake_configure_template - name: "Configure using CMake 3.12" + name: "Configure using CMake 3.12 and YCM 0.11.0" env: - TRAVIS_CMAKE_VERSION="3.12" + - TRAVIS_YCM_VERSION="0.11.0" - stage: cmake <<: *cmake_configure_template - name: "Configure using CMake 3.13" + name: "Configure using CMake 3.13 and YCM 0.11.0" env: - TRAVIS_CMAKE_VERSION="3.13" + - TRAVIS_YCM_VERSION="0.11.0" - stage: cmake <<: *cmake_configure_template - name: "Configure using CMake 3.14" + name: "Configure using CMake 3.14 and YCM 0.11.0" env: - TRAVIS_CMAKE_VERSION="3.14" + - TRAVIS_YCM_VERSION="0.11.0" - stage: cmake <<: *cmake_configure_template - name: "Configure using CMake 3.15" + name: "Configure using CMake 3.15 and YCM 0.11.0" env: - TRAVIS_CMAKE_VERSION="3.15" + - TRAVIS_YCM_VERSION="0.11.0" - stage: cmake <<: *cmake_configure_template - name: "Configure using CMake 3.16" + name: "Configure using CMake 3.16 and YCM 0.11.0" env: - TRAVIS_CMAKE_VERSION="3.16" + - TRAVIS_YCM_VERSION="0.11.0" - stage: test <<: *linux_gcc_build_template From b427fe20ea7e63638377e6d871eba0e525743816 Mon Sep 17 00:00:00 2001 From: "Daniele E. Domenichelli" Date: Mon, 16 Mar 2020 18:46:51 +0100 Subject: [PATCH 3/3] Make YCM a hard dependency Fixes #2078 --- CMakeLists.txt | 6 +- cmake/CMakeLists.txt | 23 + cmake/template/YARPConfig.cmake.in | 42 +- doc/release/master/remove_ycm.md | 6 + extern/ycm/CMakeLists.txt | 102 - extern/ycm/README.txt | 48 - extern/ycm/ycm-0.11.0/3rdparty/CMakeRC.cmake | 617 ---- .../ycm-0.11.0/3rdparty/COPYING.CMake-wiki | 22 - .../ycm/ycm-0.11.0/3rdparty/COPYING.CMakeRC | 21 - extern/ycm/ycm-0.11.0/3rdparty/COPYING.Catch2 | 23 - extern/ycm/ycm-0.11.0/3rdparty/COPYING.Eigen | 26 - extern/ycm/ycm-0.11.0/3rdparty/COPYING.OVITO | 674 ---- .../ycm/ycm-0.11.0/3rdparty/COPYING.UseLATEX | 28 - extern/ycm/ycm-0.11.0/3rdparty/COPYING.VTK | 34 - extern/ycm/ycm-0.11.0/3rdparty/COPYING.qgv | 165 - .../ycm-0.11.0/3rdparty/COPYING.qt-gstreamer | 22 - extern/ycm/ycm-0.11.0/3rdparty/Catch.cmake | 175 - .../ycm-0.11.0/3rdparty/CatchAddTests.cmake | 106 - .../ycm/ycm-0.11.0/3rdparty/FindEigen3.cmake | 107 - .../ycm/ycm-0.11.0/3rdparty/FindFFMPEG.cmake | 132 - .../ycm/ycm-0.11.0/3rdparty/FindGLIB2.cmake | 66 - .../ycm/ycm-0.11.0/3rdparty/FindGObject.cmake | 67 - .../ycm-0.11.0/3rdparty/FindGStreamer.cmake | 150 - .../3rdparty/FindGStreamerPluginsBase.cmake | 94 - .../ycm-0.11.0/3rdparty/FindGraphviz.cmake | 100 - .../ycm/ycm-0.11.0/3rdparty/FindOctave.cmake | 179 - .../ycm-0.11.0/3rdparty/FindQCustomPlot.cmake | 15 - .../3rdparty/MacroFindGStreamerLibrary.cmake | 57 - .../3rdparty/ParseAndAddCatchTests.cmake | 225 -- .../ycm/ycm-0.11.0/3rdparty/README.CMake-wiki | 6 - extern/ycm/ycm-0.11.0/3rdparty/README.CMakeRC | 7 - extern/ycm/ycm-0.11.0/3rdparty/README.Catch2 | 7 - extern/ycm/ycm-0.11.0/3rdparty/README.Eigen | 7 - extern/ycm/ycm-0.11.0/3rdparty/README.OVITO | 7 - .../ycm/ycm-0.11.0/3rdparty/README.UseLATEX | 7 - extern/ycm/ycm-0.11.0/3rdparty/README.VTK | 7 - extern/ycm/ycm-0.11.0/3rdparty/README.qgv | 7 - .../ycm-0.11.0/3rdparty/README.qt-gstreamer | 7 - extern/ycm/ycm-0.11.0/3rdparty/UseLATEX.cmake | 1967 ---------- .../ycm-0.11.0/build-modules/BuildECM.cmake | 27 - .../build-modules/BuildEigen3.cmake | 25 - .../BuildGazeboYARPPlugins.cmake | 45 - .../build-modules/BuildGooCanvas.cmake | 36 - .../build-modules/BuildGooCanvasMM.cmake | 46 - .../build-modules/BuildGtkDatabox.cmake | 37 - .../build-modules/BuildGtkDataboxMM.cmake | 43 - .../ycm-0.11.0/build-modules/BuildICUB.cmake | 59 - .../build-modules/BuildTinyXML.cmake | 25 - .../ycm-0.11.0/build-modules/BuildYARP.cmake | 86 - .../build-modules/BuildqpOASES.cmake | 35 - .../ycm/ycm-0.11.0/cmake-3.13/Copyright.txt | 126 - .../Modules/CMakeParseArguments.cmake | 11 - .../cmake-3.13/Modules/FindDoxygen.cmake | 1117 ------ .../FindPackageHandleStandardArgs.cmake | 386 -- .../Modules/FindPackageMessage.cmake | 47 - extern/ycm/ycm-0.11.0/cmake-3.13/README | 11 - .../ycm/ycm-0.11.0/cmake-3.14/Copyright.txt | 131 - ...asicConfigVersion-AnyNewerVersion.cmake.in | 37 - .../BasicConfigVersion-ExactVersion.cmake.in | 52 - ...sicConfigVersion-SameMajorVersion.cmake.in | 51 - ...sicConfigVersion-SameMinorVersion.cmake.in | 55 - .../Modules/CMakePackageConfigHelpers.cmake | 332 -- .../Modules/CMakeParseArguments.cmake | 12 - .../FindPackageHandleStandardArgs.cmake | 386 -- .../Modules/FindPackageMessage.cmake | 48 - .../cmake-3.14/Modules/FindSWIG.cmake | 67 - .../cmake-3.14/Modules/UseSWIG.cmake | 858 ----- .../Modules/WriteBasicConfigVersionFile.cmake | 51 - extern/ycm/ycm-0.11.0/cmake-3.14/README | 11 - .../ycm/ycm-0.11.0/cmake-3.15/Copyright.txt | 131 - .../Modules/CMakeParseArguments.cmake | 12 - .../cmake-3.15/Modules/FindGLEW.cmake | 342 -- .../FindPackageHandleStandardArgs.cmake | 386 -- .../Modules/FindPackageMessage.cmake | 48 - .../Modules/SelectLibraryConfigurations.cmake | 80 - extern/ycm/ycm-0.11.0/cmake-3.15/README | 11 - .../ycm-0.11.0/cmake-proposed/Copyright.txt | 125 - .../Modules/CMakeParseArguments.cmake | 277 -- .../Modules/ExternalProject.cmake | 3277 ----------------- extern/ycm/ycm-0.11.0/cmake-proposed/README | 26 - .../ycm-0.11.0/deprecated/FindGthread.cmake | 138 - .../ycm/ycm-0.11.0/deprecated/FindGtkMM.cmake | 42 - .../ycm-0.11.0/deprecated/FindGtkMMUnix.cmake | 126 - .../deprecated/FindGtkMMWin32.cmake | 282 -- .../ycm-0.11.0/deprecated/FindGtkPlus.cmake | 132 - .../ycm-0.11.0/deprecated/FindGtkWin32.cmake | 152 - .../deprecated/YCMDefaultDirs.cmake | 36 - .../deprecated/YCMDeprecatedWarning.cmake | 25 - .../ycm/ycm-0.11.0/find-modules/FindACE.cmake | 268 -- .../ycm-0.11.0/find-modules/FindAtlas.cmake | 79 - .../find-modules/FindCFW2CANAPI.cmake | 43 - .../find-modules/FindDRAGONFLYAPI.cmake | 57 - .../find-modules/FindESDCANAPI.cmake | 98 - .../ycm-0.11.0/find-modules/FindFTDI.cmake | 48 - .../find-modules/FindFreenect.cmake | 39 - .../ycm-0.11.0/find-modules/FindFuse.cmake | 40 - .../ycm-0.11.0/find-modules/FindGLFW3.cmake | 133 - .../ycm/ycm-0.11.0/find-modules/FindGLM.cmake | 123 - .../ycm-0.11.0/find-modules/FindGLUT.cmake | 81 - .../ycm/ycm-0.11.0/find-modules/FindGSL.cmake | 145 - .../find-modules/FindGooCanvas.cmake | 50 - .../find-modules/FindGooCanvasMM.cmake | 52 - .../find-modules/FindGtkDatabox.cmake | 50 - .../find-modules/FindGtkDataboxMM.cmake | 52 - .../ycm/ycm-0.11.0/find-modules/FindI2C.cmake | 71 - .../ycm-0.11.0/find-modules/FindIPOPT.cmake | 230 -- .../ycm/ycm-0.11.0/find-modules/FindIPP.cmake | 315 -- .../ycm-0.11.0/find-modules/FindLibOVR.cmake | 271 -- .../find-modules/FindLibdc1394.cmake | 39 - .../ycm-0.11.0/find-modules/FindLibedit.cmake | 51 - .../ycm-0.11.0/find-modules/FindLibusb1.cmake | 39 - .../ycm-0.11.0/find-modules/FindLibv4l2.cmake | 40 - .../find-modules/FindLibv4lconvert.cmake | 39 - .../find-modules/FindNVIDIACg.cmake | 43 - .../ycm/ycm-0.11.0/find-modules/FindODE.cmake | 181 - .../ycm-0.11.0/find-modules/FindOpenCV.cmake | 558 --- .../ycm-0.11.0/find-modules/FindOpenGL.cmake | 52 - .../ycm-0.11.0/find-modules/FindOpenNI.cmake | 39 - .../ycm-0.11.0/find-modules/FindOpenNI2.cmake | 59 - .../find-modules/FindPLXCANAPI.cmake | 46 - .../find-modules/FindPortAudio.cmake | 79 - .../find-modules/FindReadline.cmake | 90 - .../ycm-0.11.0/find-modules/FindSQLite.cmake | 40 - .../ycm-0.11.0/find-modules/FindStage.cmake | 48 - .../ycm-0.11.0/find-modules/FindTinyXML.cmake | 40 - .../ycm-0.11.0/find-modules/FindYamlCpp.cmake | 40 - .../ycm/ycm-0.11.0/find-modules/FindZFP.cmake | 77 - .../ycm-0.11.0/find-modules/Findassimp.cmake | 287 -- .../ycm-0.11.0/find-modules/FindqpOASES.cmake | 51 - .../modules/AddInstallRPATHSupport.cmake | 169 - .../modules/AddUninstallTarget.cmake | 102 - .../ycm-0.11.0/modules/ExtractVersion.cmake | 88 - .../modules/FindOrBuildPackage.cmake | 296 -- .../modules/GetAllCMakeProperties.cmake | 67 - extern/ycm/ycm-0.11.0/modules/GitInfo.cmake | 488 --- .../ycm/ycm-0.11.0/modules/IncludeUrl.cmake | 405 -- .../modules/InstallBasicPackageFiles.cmake | 767 ---- .../modules/ReplaceImportedTargets.cmake | 113 - .../modules/StandardFindModule.cmake | 268 -- .../ycm/ycm-0.11.0/modules/YCMEPHelper.cmake | 1459 -------- .../style-modules/StyleBITBUCKET.cmake | 28 - .../style-modules/StyleGITHUB.cmake | 33 - .../StyleGITLAB_ROBOTOLOGY.cmake | 32 - .../ycm-0.11.0/style-modules/StyleGNOME.cmake | 32 - .../ycm-0.11.0/style-modules/StyleKDE.cmake | 32 - .../ycm-0.11.0/style-modules/StyleLOCAL.cmake | 21 - .../ycm-0.11.0/style-modules/StyleNONE.cmake | 21 - .../style-modules/StyleSOURCEFORGE.cmake | 40 - 148 files changed, 37 insertions(+), 23869 deletions(-) create mode 100644 doc/release/master/remove_ycm.md delete mode 100644 extern/ycm/CMakeLists.txt delete mode 100644 extern/ycm/README.txt delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/CMakeRC.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.CMake-wiki delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.CMakeRC delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.Catch2 delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.Eigen delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.OVITO delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.UseLATEX delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.VTK delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.qgv delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/COPYING.qt-gstreamer delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/Catch.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/CatchAddTests.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindEigen3.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindFFMPEG.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindGLIB2.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindGObject.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindGStreamer.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindGStreamerPluginsBase.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindGraphviz.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindOctave.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/FindQCustomPlot.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/MacroFindGStreamerLibrary.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/ParseAndAddCatchTests.cmake delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.CMake-wiki delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.CMakeRC delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.Catch2 delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.Eigen delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.OVITO delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.UseLATEX delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.VTK delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.qgv delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/README.qt-gstreamer delete mode 100644 extern/ycm/ycm-0.11.0/3rdparty/UseLATEX.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildECM.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildEigen3.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildGazeboYARPPlugins.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildGooCanvas.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildGooCanvasMM.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildGtkDatabox.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildGtkDataboxMM.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildICUB.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildTinyXML.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildYARP.cmake delete mode 100644 extern/ycm/ycm-0.11.0/build-modules/BuildqpOASES.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.13/Copyright.txt delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.13/Modules/CMakeParseArguments.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindDoxygen.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindPackageMessage.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.13/README delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Copyright.txt delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-ExactVersion.cmake.in delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-SameMajorVersion.cmake.in delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-SameMinorVersion.cmake.in delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/CMakePackageConfigHelpers.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/CMakeParseArguments.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindPackageMessage.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindSWIG.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/UseSWIG.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/Modules/WriteBasicConfigVersionFile.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.14/README delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.15/Copyright.txt delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.15/Modules/CMakeParseArguments.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindGLEW.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindPackageMessage.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.15/Modules/SelectLibraryConfigurations.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-3.15/README delete mode 100644 extern/ycm/ycm-0.11.0/cmake-proposed/Copyright.txt delete mode 100644 extern/ycm/ycm-0.11.0/cmake-proposed/Modules/CMakeParseArguments.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-proposed/Modules/ExternalProject.cmake delete mode 100644 extern/ycm/ycm-0.11.0/cmake-proposed/README delete mode 100644 extern/ycm/ycm-0.11.0/deprecated/FindGthread.cmake delete mode 100644 extern/ycm/ycm-0.11.0/deprecated/FindGtkMM.cmake delete mode 100644 extern/ycm/ycm-0.11.0/deprecated/FindGtkMMUnix.cmake delete mode 100644 extern/ycm/ycm-0.11.0/deprecated/FindGtkMMWin32.cmake delete mode 100644 extern/ycm/ycm-0.11.0/deprecated/FindGtkPlus.cmake delete mode 100644 extern/ycm/ycm-0.11.0/deprecated/FindGtkWin32.cmake delete mode 100644 extern/ycm/ycm-0.11.0/deprecated/YCMDefaultDirs.cmake delete mode 100644 extern/ycm/ycm-0.11.0/deprecated/YCMDeprecatedWarning.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindACE.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindAtlas.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindCFW2CANAPI.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindDRAGONFLYAPI.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindESDCANAPI.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindFTDI.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindFreenect.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindFuse.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindGLFW3.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindGLM.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindGLUT.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindGSL.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindGooCanvas.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindGooCanvasMM.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindGtkDatabox.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindGtkDataboxMM.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindI2C.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindIPOPT.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindIPP.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindLibOVR.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindLibdc1394.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindLibedit.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindLibusb1.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindLibv4l2.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindLibv4lconvert.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindNVIDIACg.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindODE.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindOpenCV.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindOpenGL.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindOpenNI.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindOpenNI2.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindPLXCANAPI.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindPortAudio.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindReadline.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindSQLite.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindStage.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindTinyXML.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindYamlCpp.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindZFP.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/Findassimp.cmake delete mode 100644 extern/ycm/ycm-0.11.0/find-modules/FindqpOASES.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/AddInstallRPATHSupport.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/AddUninstallTarget.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/ExtractVersion.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/FindOrBuildPackage.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/GetAllCMakeProperties.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/GitInfo.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/IncludeUrl.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/InstallBasicPackageFiles.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/ReplaceImportedTargets.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/StandardFindModule.cmake delete mode 100644 extern/ycm/ycm-0.11.0/modules/YCMEPHelper.cmake delete mode 100644 extern/ycm/ycm-0.11.0/style-modules/StyleBITBUCKET.cmake delete mode 100644 extern/ycm/ycm-0.11.0/style-modules/StyleGITHUB.cmake delete mode 100644 extern/ycm/ycm-0.11.0/style-modules/StyleGITLAB_ROBOTOLOGY.cmake delete mode 100644 extern/ycm/ycm-0.11.0/style-modules/StyleGNOME.cmake delete mode 100644 extern/ycm/ycm-0.11.0/style-modules/StyleKDE.cmake delete mode 100644 extern/ycm/ycm-0.11.0/style-modules/StyleLOCAL.cmake delete mode 100644 extern/ycm/ycm-0.11.0/style-modules/StyleNONE.cmake delete mode 100644 extern/ycm/ycm-0.11.0/style-modules/StyleSOURCEFORGE.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 5673d058da0..e2953f760d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,10 +28,10 @@ set(PROJECT_DESCRIPTION "YARP: A thin middleware for humanoid robots and more") set(YARP_MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake") list(APPEND CMAKE_MODULE_PATH ${YARP_MODULE_DIR}) - -# Find or use YCM version in extern. +# Find YCM # This is required here, because YarpVersion uses GitInfo from YCM -add_subdirectory(extern/ycm) +set(YCM_REQUIRED_VERSION 0.11.0) # Used also by YarpFindDependencies +find_package(YCM ${YCM_REQUIRED_VERSION} REQUIRED) # Get the current YARP version. # See cmake/YarpVersion.cmake. diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 30b3ba6ec74..cd8339a3026 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -34,3 +34,26 @@ foreach(_f YarpDeprecatedWarning.cmake # since YARP 3.0.0 deprecated/YarpBackupVariable.cmake) yarp_remove_file("share/yarp/cmake/${_f}") endforeach() + +# Remove old YCM internal installations +foreach(_d ycm-0.6.0 # since YARP 3.0.0 + ycm-0.7.0 + ycm-0.8.0 + ycm-0.8.1 # since YARP 3.0.1 + ycm-0.8.20180628.11 + ycm-0.8.20180712.5 + ycm-0.8.20180720.3 + ycm-0.9.0 # since YARP 3.1.1 + ycm-0.9.0.8 + ycm-0.9.20181128.10 + ycm-0.9.20181204.8 + ycm-0.9.20190213.9 + ycm-0.9.20190315.16 + ycm-0.9.20190329.27 + ycm-0.10.0 + ycm-0.10.1 + ycm-0.10.2 + ycm-0.10.3 + ycm-0.11.0) # since YARP 3.3.0 + yarp_remove_directory("share/yarp/cmake/${_d}") +endforeach() diff --git a/cmake/template/YARPConfig.cmake.in b/cmake/template/YARPConfig.cmake.in index e145c8a776f..3be23d4582b 100644 --- a/cmake/template/YARPConfig.cmake.in +++ b/cmake/template/YARPConfig.cmake.in @@ -93,48 +93,16 @@ set(YARP_IDL_BINARY_HINT "@PACKAGE_YARP_IDL_BINARY_HINT@") # CMake modules directories set_and_check(YARP_MODULE_DIR "@PACKAGE_YARP_MODULE_DIR@") - # Save the variables, that it should not be modified by find_package(YARP), but # we need to modify it in order to find all the dependencies. set(_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) set(_YCM_FOUND ${YCM_FOUND}) -# Find YCM if needed: -# * If YARP is static therefore we need YCM (or YARP private version) for private -# dependencies. -# * If deprecated stuff is enabled, we need YCM (or YARP private version) for -# compatibility with old versions. -# If YCM is not found, the private version is used instead. -if(NOT YARP_IS_SHARED_LIBRARY OR NOT YARP_NO_DEPRECATED) - # Until YCM is optional, we always want to look for YCM quietly, therefore we - # use find_package instead of find_dependency. - # WARNING find_package(YCM) will overwrite the PACKAGE_PREFIX_DIR variable, - # therefore this variable is no longer valid after this line - get_property(_yarp_ycm_transitive_dependency_set GLOBAL PROPERTY _CMAKE_YCM_TRANSITIVE_DEPENDENCY SET) - find_package(YCM @YCM_REQUIRED_VERSION@ QUIET) - # Ensure that YCM is not shown by FeatureSummary if not requested by the user - if(NOT _yarp_ycm_transitive_dependency_set) - set_property(GLOBAL PROPERTY _CMAKE_YCM_TRANSITIVE_DEPENDENCY TRUE) - endif() - if(NOT YARP_NO_DEPRECATED) - if(YCM_FOUND) - set(_YARP_YCM_MODULE_PATH ${YCM_MODULE_PATH}) - else() - set_and_check(YARP_YCM_MODULE_DIR "@PACKAGE_YARP_YCM_MODULE_DIR@") - set(_YARP_YCM_MODULE_PATH "${YARP_YCM_MODULE_DIR}/find-modules" - "${YARP_YCM_MODULE_DIR}/modules" - "${YARP_YCM_MODULE_DIR}/3rdparty" - "${YARP_YCM_MODULE_DIR}/cmake-proposed") - if(${CMAKE_VERSION} VERSION_LESS 3.8) - list(APPEND _YARP_YCM_MODULE_PATH "${YARP_YCM_MODULE_DIR}/cmake-3.8/Modules") - endif() - - # We need these paths in order to use the find modules in the following - # find_package/find_dependency calls (those are automatically added by - # YCM) - list(APPEND CMAKE_MODULE_PATH ${_YARP_YCM_MODULE_PATH}) - endif() - endif() +# Find YCM if YARP is static therefore we need YCM (or YARP private version) for +# private dependencies. +if(NOT YARP_IS_SHARED_LIBRARY) + include(CMakeFindDependencyMacro) + find_dependency(YCM @YCM_REQUIRED_VERSION@ REQUIRED) endif() diff --git a/doc/release/master/remove_ycm.md b/doc/release/master/remove_ycm.md new file mode 100644 index 00000000000..95a20399a0c --- /dev/null +++ b/doc/release/master/remove_ycm.md @@ -0,0 +1,6 @@ +remove_ycm {master} +------------------- + +### Important Changes + +* YCM 0.11 or later is now a hard dependency diff --git a/extern/ycm/CMakeLists.txt b/extern/ycm/CMakeLists.txt deleted file mode 100644 index 5b2a0d19ca1..00000000000 --- a/extern/ycm/CMakeLists.txt +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright (C) 2006-2020 Istituto Italiano di Tecnologia (IIT) -# All rights reserved. -# -# This software may be modified and distributed under the terms of the -# BSD-3-Clause license. See the accompanying LICENSE file for details. - -set(YCM_REQUIRED_VERSION 0.11.0) # Used also by YarpFindDependencies -find_package(YCM ${YCM_REQUIRED_VERSION} QUIET) - -if(NOT YCM_FOUND) - - set(YCM_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/ycm-${YCM_REQUIRED_VERSION}/find-modules" - "${CMAKE_CURRENT_LIST_DIR}/ycm-${YCM_REQUIRED_VERSION}/modules" - "${CMAKE_CURRENT_LIST_DIR}/ycm-${YCM_REQUIRED_VERSION}/3rdparty") - if(${CMAKE_VERSION} VERSION_LESS 3.14) - list(APPEND YCM_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/ycm-${YCM_REQUIRED_VERSION}/cmake-3.14/Modules") - endif() - - - if(NOT YARP_NO_DEPRECATED) # since YARP 2.3.68. Warning in YARP 3.0.1 - - if(NOT YCM_FOUND) - set(YCM_CMAKE_find_modules_FILES ycm-${YCM_REQUIRED_VERSION}/find-modules/FindACE.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindFreenect.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindFTDI.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindGLFW3.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindLibedit.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindLibOVR.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindLibdc1394.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindLibusb1.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindNVIDIACg.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindOpenCV.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindOpenNI.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindOpenNI2.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindPortAudio.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindSQLite.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindStage.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindTinyXML.cmake - ycm-${YCM_REQUIRED_VERSION}/find-modules/FindZFP.cmake) - set(YCM_CMAKE_modules_FILES ycm-${YCM_REQUIRED_VERSION}/modules/AddInstallRPATHSupport.cmake - ycm-${YCM_REQUIRED_VERSION}/modules/ExtractVersion.cmake - ycm-${YCM_REQUIRED_VERSION}/modules/GetAllCMakeProperties.cmake - ycm-${YCM_REQUIRED_VERSION}/modules/GitInfo.cmake - ycm-${YCM_REQUIRED_VERSION}/modules/InstallBasicPackageFiles.cmake - ycm-${YCM_REQUIRED_VERSION}/modules/ReplaceImportedTargets.cmake - ycm-${YCM_REQUIRED_VERSION}/modules/StandardFindModule.cmake) - set(YCM_CMAKE_3rdparty_FILES ycm-${YCM_REQUIRED_VERSION}/3rdparty/FindEigen3.cmake - ycm-${YCM_REQUIRED_VERSION}/3rdparty/FindFFMPEG.cmake - ycm-${YCM_REQUIRED_VERSION}/3rdparty/FindOctave.cmake - ycm-${YCM_REQUIRED_VERSION}/3rdparty/FindQCustomPlot.cmake) - set(YCM_CMAKE_cmake_3.14_FILES ycm-${YCM_REQUIRED_VERSION}/cmake-3.14/Modules/CMakeParseArguments.cmake - ycm-${YCM_REQUIRED_VERSION}/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake - ycm-${YCM_REQUIRED_VERSION}/cmake-3.14/Modules/FindPackageMessage.cmake - ycm-${YCM_REQUIRED_VERSION}/cmake-3.14/Modules/FindSWIG.cmake - ycm-${YCM_REQUIRED_VERSION}/cmake-3.14/Modules/UseSWIG.cmake) - - install(FILES ${YCM_CMAKE_find_modules_FILES} - COMPONENT YARP_conf-dev - DESTINATION share/yarp/cmake/ycm-${YCM_REQUIRED_VERSION}/find-modules) - install(FILES ${YCM_CMAKE_modules_FILES} - COMPONENT YARP_conf-dev - DESTINATION share/yarp/cmake/ycm-${YCM_REQUIRED_VERSION}/modules) - install(FILES ${YCM_CMAKE_3rdparty_FILES} - COMPONENT YARP_conf-dev - DESTINATION share/yarp/cmake/ycm-${YCM_REQUIRED_VERSION}/3rdparty) - if(${CMAKE_VERSION} VERSION_LESS 3.14) - # Files from CMake 3.14, available only if CMake on the system is older - install(FILES ${YCM_CMAKE_cmake_3.14_FILES} - COMPONENT YARP_conf-dev - DESTINATION share/yarp/cmake/ycm-${YCM_REQUIRED_VERSION}/cmake-next/Modules) - endif() - endif() - endif() -endif() - -set(YCM_MODULE_PATH ${YCM_MODULE_PATH} PARENT_SCOPE) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${YCM_MODULE_PATH} PARENT_SCOPE) -set(YCM_REQUIRED_VERSION ${YCM_REQUIRED_VERSION} PARENT_SCOPE) # Used also by YarpFindDependencies and YARPConfig -set(YCM_FOUND ${YCM_FOUND} PARENT_SCOPE) - -# Remove no longer used directory from installation -include(YarpRemoveFile) -foreach(_d ycm-0.6.0 # since YARP 3.0.0 - ycm-0.7.0 - ycm-0.8.0 - ycm-0.8.1 # since YARP 3.0.1 - ycm-0.8.20180628.11 - ycm-0.8.20180712.5 - ycm-0.8.20180720.3 - ycm-0.9.0 # since YARP 3.1.1 - ycm-0.9.0.8 - ycm-0.9.20181128.10 - ycm-0.9.20181204.8 - ycm-0.9.20190213.9 - ycm-0.9.20190315.16 - ycm-0.9.20190329.27 - ycm-0.10.0 - ycm-0.10.1 - ycm-0.10.2 - ycm-0.10.3) - yarp_remove_directory("share/yarp/cmake/${_d}") -endforeach() diff --git a/extern/ycm/README.txt b/extern/ycm/README.txt deleted file mode 100644 index cbaf588a1aa..00000000000 --- a/extern/ycm/README.txt +++ /dev/null @@ -1,48 +0,0 @@ -YCM ---- - -Extra CMake Modules for YARP and friends - -Homepage: https://github.com/robotology/ycm/ - -Copyright: 2013-2019 Istituto Italiano di Tecnologia (IIT) - -License: 3-Clause-BSD - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the names of Istituto Italiano di Tecnologia (IIT), - nor the names of their contributors may be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Version: 0.11.0 - -Notes: - YCM downloads several modules at build time. We don't want to add a network - dependency on YARP builds, therefore this is a copy of the share/YCM folder - in the build directory of a build with YCM_MAINTAINER_MODE enabled. - If you want to update the files in this folder, update the files in YCM, build - it, and copy the share/YCM folder here, rename the folder with the right name, - update the version and add a line to remove the old version in the - CMakeLists.txt in this folder. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/CMakeRC.cmake b/extern/ycm/ycm-0.11.0/3rdparty/CMakeRC.cmake deleted file mode 100644 index 30d36942aef..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/CMakeRC.cmake +++ /dev/null @@ -1,617 +0,0 @@ -# This block is executed when generating an intermediate resource file, not when -# running in CMake configure mode -if(_CMRC_GENERATE_MODE) - # Read in the digits - file(READ "${INPUT_FILE}" bytes HEX) - # Format each pair into a character literal. Heuristics seem to favor doing - # the conversion in groups of five for fastest conversion - string(REGEX REPLACE "(..)(..)(..)(..)(..)" "'\\\\x\\1','\\\\x\\2','\\\\x\\3','\\\\x\\4','\\\\x\\5'," chars "${bytes}") - # Since we did this in groups, we have some leftovers to clean up - string(LENGTH "${bytes}" n_bytes2) - math(EXPR n_bytes "${n_bytes2} / 2") - math(EXPR remainder "${n_bytes} % 5") # <-- '5' is the grouping count from above - set(cleanup_re "$") - set(cleanup_sub ) - while(remainder) - set(cleanup_re "(..)${cleanup_re}") - set(cleanup_sub "'\\\\x\\${remainder}',${cleanup_sub}") - math(EXPR remainder "${remainder} - 1") - endwhile() - if(NOT cleanup_re STREQUAL "$") - string(REGEX REPLACE "${cleanup_re}" "${cleanup_sub}" chars "${chars}") - endif() - string(CONFIGURE [[ - namespace { const char file_array[] = { @chars@ 0 }; } - namespace cmrc { namespace @NAMESPACE@ { namespace res_chars { - extern const char* const @SYMBOL@_begin = file_array; - extern const char* const @SYMBOL@_end = file_array + @n_bytes@; - }}} - ]] code) - file(WRITE "${OUTPUT_FILE}" "${code}") - # Exit from the script. Nothing else needs to be processed - return() -endif() - -set(_version 2.0.0) - -cmake_minimum_required(VERSION 3.3) -include(CMakeParseArguments) - -if(COMMAND cmrc_add_resource_library) - if(NOT DEFINED _CMRC_VERSION OR NOT (_version STREQUAL _CMRC_VERSION)) - message(WARNING "More than one CMakeRC version has been included in this project.") - endif() - # CMakeRC has already been included! Don't do anything - return() -endif() - -set(_CMRC_VERSION "${_version}" CACHE INTERNAL "CMakeRC version. Used for checking for conflicts") - -set(_CMRC_SCRIPT "${CMAKE_CURRENT_LIST_FILE}" CACHE INTERNAL "Path to CMakeRC script") - -function(_cmrc_normalize_path var) - set(path "${${var}}") - file(TO_CMAKE_PATH "${path}" path) - while(path MATCHES "//") - string(REPLACE "//" "/" path "${path}") - endwhile() - string(REGEX REPLACE "/+$" "" path "${path}") - set("${var}" "${path}" PARENT_SCOPE) -endfunction() - -get_filename_component(_inc_dir "${CMAKE_BINARY_DIR}/_cmrc/include" ABSOLUTE) -set(CMRC_INCLUDE_DIR "${_inc_dir}" CACHE INTERNAL "Directory for CMakeRC include files") -# Let's generate the primary include file -file(MAKE_DIRECTORY "${CMRC_INCLUDE_DIR}/cmrc") -set(hpp_content [==[ -#ifndef CMRC_CMRC_HPP_INCLUDED -#define CMRC_CMRC_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace cmrc { namespace detail { struct dummy; } } - -#define CMRC_DECLARE(libid) \ - namespace cmrc { namespace detail { \ - struct dummy; \ - static_assert(std::is_same::value, "CMRC_DECLARE() must only appear at the global namespace"); \ - } } \ - namespace cmrc { namespace libid { \ - cmrc::embedded_filesystem get_filesystem(); \ - } } static_assert(true, "") - -namespace cmrc { - -class file { - const char* _begin = nullptr; - const char* _end = nullptr; - -public: - using iterator = const char*; - using const_iterator = iterator; - iterator begin() const noexcept { return _begin; } - iterator cbegin() const noexcept { return _begin; } - iterator end() const noexcept { return _end; } - iterator cend() const noexcept { return _end; } - std::size_t size() const { return std::distance(begin(), end()); } - - file() = default; - file(iterator beg, iterator end) noexcept : _begin(beg), _end(end) {} -}; - -class directory_entry; - -namespace detail { - -class directory; -class file_data; - -class file_or_directory { - union _data_t { - class file_data* file_data; - class directory* directory; - } _data; - bool _is_file = true; - -public: - explicit file_or_directory(file_data& f) { - _data.file_data = &f; - } - explicit file_or_directory(directory& d) { - _data.directory = &d; - _is_file = false; - } - bool is_file() const noexcept { - return _is_file; - } - bool is_directory() const noexcept { - return !is_file(); - } - const directory& as_directory() const noexcept { - assert(!is_file()); - return *_data.directory; - } - const file_data& as_file() const noexcept { - assert(is_file()); - return *_data.file_data; - } -}; - -class file_data { -public: - const char* begin_ptr; - const char* end_ptr; - file_data(const file_data&) = delete; - file_data(const char* b, const char* e) : begin_ptr(b), end_ptr(e) {} -}; - -inline std::pair split_path(const std::string& path) { - auto first_sep = path.find("/"); - if (first_sep == path.npos) { - return std::make_pair(path, ""); - } else { - return std::make_pair(path.substr(0, first_sep), path.substr(first_sep + 1)); - } -} - -struct created_subdirectory { - class directory& directory; - class file_or_directory& index_entry; -}; - -class directory { - std::list _files; - std::list _dirs; - std::map _index; - - using base_iterator = std::map::const_iterator; - -public: - - directory() = default; - directory(const directory&) = delete; - - created_subdirectory add_subdir(std::string name) & { - _dirs.emplace_back(); - auto& back = _dirs.back(); - auto& fod = _index.emplace(name, file_or_directory{back}).first->second; - return created_subdirectory{back, fod}; - } - - file_or_directory* add_file(std::string name, const char* begin, const char* end) & { - assert(_index.find(name) == _index.end()); - _files.emplace_back(begin, end); - return &_index.emplace(name, file_or_directory{_files.back()}).first->second; - } - - const file_or_directory* get(const std::string& path) const { - auto pair = split_path(path); - auto child = _index.find(pair.first); - if (child == _index.end()) { - return nullptr; - } - auto& entry = child->second; - if (pair.second.empty()) { - // We're at the end of the path - return &entry; - } - - if (entry.is_file()) { - // We can't traverse into a file. Stop. - return nullptr; - } - // Keep going down - return entry.as_directory().get(pair.second); - } - - class iterator { - base_iterator _base_iter; - base_iterator _end_iter; - public: - using value_type = directory_entry; - using difference_type = std::ptrdiff_t; - using pointer = const value_type*; - using reference = const value_type&; - using iterator_category = std::input_iterator_tag; - - iterator() = default; - explicit iterator(base_iterator iter, base_iterator end) : _base_iter(iter), _end_iter(end) {} - - iterator begin() const noexcept { - return *this; - } - - iterator end() const noexcept { - return iterator(_end_iter, _end_iter); - } - - inline value_type operator*() const noexcept; - - bool operator==(const iterator& rhs) const noexcept { - return _base_iter == rhs._base_iter; - } - - bool operator!=(const iterator& rhs) const noexcept { - return !(*this == rhs); - } - - iterator operator++() noexcept { - auto cp = *this; - ++_base_iter; - return cp; - } - - iterator& operator++(int) noexcept { - ++_base_iter; - return *this; - } - }; - - using const_iterator = iterator; - - iterator begin() const noexcept { - return iterator(_index.begin(), _index.end()); - } - - iterator end() const noexcept { - return iterator(); - } -}; - -inline std::string normalize_path(std::string path) { - while (path.find("/") == 0) { - path.erase(path.begin()); - } - while (!path.empty() && (path.rfind("/") == path.size() - 1)) { - path.pop_back(); - } - auto off = path.npos; - while ((off = path.find("//")) != path.npos) { - path.erase(path.begin() + off); - } - return path; -} - -using index_type = std::map; - -} // detail - -class directory_entry { - std::string _fname; - const detail::file_or_directory* _item; - -public: - directory_entry() = delete; - explicit directory_entry(std::string filename, const detail::file_or_directory& item) - : _fname(filename) - , _item(&item) - {} - - const std::string& filename() const & { - return _fname; - } - std::string filename() const && { - return std::move(_fname); - } - - bool is_file() const { - return _item->is_file(); - } - - bool is_directory() const { - return _item->is_directory(); - } -}; - -directory_entry detail::directory::iterator::operator*() const noexcept { - assert(begin() != end()); - return directory_entry(_base_iter->first, _base_iter->second); -} - -using directory_iterator = detail::directory::iterator; - -class embedded_filesystem { - // Never-null: - const cmrc::detail::index_type* _index; - const detail::file_or_directory* _get(std::string path) const { - path = detail::normalize_path(path); - auto found = _index->find(path); - if (found == _index->end()) { - return nullptr; - } else { - return found->second; - } - } - -public: - explicit embedded_filesystem(const detail::index_type& index) - : _index(&index) - {} - - file open(const std::string& path) const { - auto entry_ptr = _get(path); - if (!entry_ptr || !entry_ptr->is_file()) { - throw std::system_error(make_error_code(std::errc::no_such_file_or_directory), path); - } - auto& dat = entry_ptr->as_file(); - return file{dat.begin_ptr, dat.end_ptr}; - } - - bool is_file(const std::string& path) const noexcept { - auto entry_ptr = _get(path); - return entry_ptr && entry_ptr->is_file(); - } - - bool is_directory(const std::string& path) const noexcept { - auto entry_ptr = _get(path); - return entry_ptr && entry_ptr->is_directory(); - } - - bool exists(const std::string& path) const noexcept { - return !!_get(path); - } - - directory_iterator iterate_directory(const std::string& path) const { - auto entry_ptr = _get(path); - if (!entry_ptr) { - throw std::system_error(make_error_code(std::errc::no_such_file_or_directory), path); - } - if (!entry_ptr->is_directory()) { - throw std::system_error(make_error_code(std::errc::not_a_directory), path); - } - return entry_ptr->as_directory().begin(); - } -}; - -} - -#endif // CMRC_CMRC_HPP_INCLUDED -]==]) - -set(cmrc_hpp "${CMRC_INCLUDE_DIR}/cmrc/cmrc.hpp" CACHE INTERNAL "") -set(_generate 1) -if(EXISTS "${cmrc_hpp}") - file(READ "${cmrc_hpp}" _current) - if(_current STREQUAL hpp_content) - set(_generate 0) - endif() -endif() -file(GENERATE OUTPUT "${cmrc_hpp}" CONTENT "${hpp_content}" CONDITION ${_generate}) - -add_library(cmrc-base INTERFACE) -target_include_directories(cmrc-base INTERFACE "${CMRC_INCLUDE_DIR}") -# Signal a basic C++11 feature to require C++11. -target_compile_features(cmrc-base INTERFACE cxx_nullptr) -set_property(TARGET cmrc-base PROPERTY INTERFACE_CXX_EXTENSIONS OFF) -add_library(cmrc::base ALIAS cmrc-base) - -function(cmrc_add_resource_library name) - set(args ALIAS NAMESPACE) - cmake_parse_arguments(ARG "" "${args}" "" "${ARGN}") - # Generate the identifier for the resource library's namespace - set(ns_re "[a-zA-Z_][a-zA-Z0-9_]*") - if(NOT DEFINED ARG_NAMESPACE) - # Check that the library name is also a valid namespace - if(NOT name MATCHES "${ns_re}") - message(SEND_ERROR "Library name is not a valid namespace. Specify the NAMESPACE argument") - endif() - set(ARG_NAMESPACE "${name}") - else() - if(NOT ARG_NAMESPACE MATCHES "${ns_re}") - message(SEND_ERROR "NAMESPACE for ${name} is not a valid C++ namespace identifier (${ARG_NAMESPACE})") - endif() - endif() - set(libname "${name}") - # Generate a library with the compiled in character arrays. - string(CONFIGURE [=[ - #include - #include - #include - - namespace cmrc { - namespace @ARG_NAMESPACE@ { - - namespace res_chars { - // These are the files which are available in this resource library - $, - > - } - - namespace { - - const cmrc::detail::index_type& - get_root_index() { - static cmrc::detail::directory root_directory_; - static cmrc::detail::file_or_directory root_directory_fod{root_directory_}; - static cmrc::detail::index_type root_index; - root_index.emplace("", &root_directory_fod); - struct dir_inl { - class cmrc::detail::directory& directory; - }; - dir_inl root_directory_dir{root_directory_}; - (void)root_directory_dir; - $, - > - $, - > - return root_index; - } - - } - - cmrc::embedded_filesystem get_filesystem() { - static auto& index = get_root_index(); - return cmrc::embedded_filesystem{index}; - } - - } // @ARG_NAMESPACE@ - } // cmrc - ]=] cpp_content @ONLY) - get_filename_component(libdir "${CMAKE_CURRENT_BINARY_DIR}/__cmrc_${name}" ABSOLUTE) - get_filename_component(lib_tmp_cpp "${libdir}/lib_.cpp" ABSOLUTE) - string(REPLACE "\n " "\n" cpp_content "${cpp_content}") - file(GENERATE OUTPUT "${lib_tmp_cpp}" CONTENT "${cpp_content}") - get_filename_component(libcpp "${libdir}/lib.cpp" ABSOLUTE) - add_custom_command(OUTPUT "${libcpp}" - DEPENDS "${lib_tmp_cpp}" "${cmrc_hpp}" - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${lib_tmp_cpp}" "${libcpp}" - COMMENT "Generating ${name} resource loader" - ) - # Generate the actual static library. Each source file is just a single file - # with a character array compiled in containing the contents of the - # corresponding resource file. - add_library(${name} STATIC ${libcpp}) - set_property(TARGET ${name} PROPERTY CMRC_LIBDIR "${libdir}") - set_property(TARGET ${name} PROPERTY CMRC_NAMESPACE "${ARG_NAMESPACE}") - target_link_libraries(${name} PUBLIC cmrc::base) - set_property(TARGET ${name} PROPERTY CMRC_IS_RESOURCE_LIBRARY TRUE) - if(ARG_ALIAS) - add_library("${ARG_ALIAS}" ALIAS ${name}) - endif() - cmrc_add_resources(${name} ${ARG_UNPARSED_ARGUMENTS}) -endfunction() - -function(_cmrc_register_dirs name dirpath) - if(dirpath STREQUAL "") - return() - endif() - # Skip this dir if we have already registered it - get_target_property(registered "${name}" _CMRC_REGISTERED_DIRS) - if(dirpath IN_LIST registered) - return() - endif() - # Register the parent directory first - get_filename_component(parent "${dirpath}" DIRECTORY) - if(NOT parent STREQUAL "") - _cmrc_register_dirs("${name}" "${parent}") - endif() - # Now generate the registration - set_property(TARGET "${name}" APPEND PROPERTY _CMRC_REGISTERED_DIRS "${dirpath}") - _cm_encode_fpath(sym "${dirpath}") - if(parent STREQUAL "") - set(parent_sym root_directory) - else() - _cm_encode_fpath(parent_sym "${parent}") - endif() - get_filename_component(leaf "${dirpath}" NAME) - set_property( - TARGET "${name}" - APPEND PROPERTY CMRC_MAKE_DIRS - "static auto ${sym}_dir = ${parent_sym}_dir.directory.add_subdir(\"${leaf}\")\;" - "root_index.emplace(\"${dirpath}\", &${sym}_dir.index_entry)\;" - ) -endfunction() - -function(cmrc_add_resources name) - get_target_property(is_reslib ${name} CMRC_IS_RESOURCE_LIBRARY) - if(NOT TARGET ${name} OR NOT is_reslib) - message(SEND_ERROR "cmrc_add_resources called on target '${name}' which is not an existing resource library") - return() - endif() - - set(options) - set(args WHENCE PREFIX) - set(list_args) - cmake_parse_arguments(ARG "${options}" "${args}" "${list_args}" "${ARGN}") - - if(NOT ARG_WHENCE) - set(ARG_WHENCE ${CMAKE_CURRENT_SOURCE_DIR}) - endif() - _cmrc_normalize_path(ARG_WHENCE) - get_filename_component(ARG_WHENCE "${ARG_WHENCE}" ABSOLUTE) - - # Generate the identifier for the resource library's namespace - get_target_property(lib_ns "${name}" CMRC_NAMESPACE) - - get_target_property(libdir ${name} CMRC_LIBDIR) - get_target_property(target_dir ${name} SOURCE_DIR) - file(RELATIVE_PATH reldir "${target_dir}" "${CMAKE_CURRENT_SOURCE_DIR}") - if(reldir MATCHES "^\\.\\.") - message(SEND_ERROR "Cannot call cmrc_add_resources in a parent directory from the resource library target") - return() - endif() - - foreach(input IN LISTS ARG_UNPARSED_ARGUMENTS) - _cmrc_normalize_path(input) - get_filename_component(abs_in "${input}" ABSOLUTE) - # Generate a filename based on the input filename that we can put in - # the intermediate directory. - file(RELATIVE_PATH relpath "${ARG_WHENCE}" "${abs_in}") - if(relpath MATCHES "^\\.\\.") - # For now we just error on files that exist outside of the soure dir. - message(SEND_ERROR "Cannot add file '${input}': File must be in a subdirectory of ${ARG_WHENCE}") - continue() - endif() - if(DEFINED ARG_PREFIX) - _cmrc_normalize_path(ARG_PREFIX) - endif() - if(ARG_PREFIX AND NOT ARG_PREFIX MATCHES "/$") - set(ARG_PREFIX "${ARG_PREFIX}/") - endif() - get_filename_component(dirpath "${ARG_PREFIX}${relpath}" DIRECTORY) - _cmrc_register_dirs("${name}" "${dirpath}") - get_filename_component(abs_out "${libdir}/intermediate/${relpath}.cpp" ABSOLUTE) - # Generate a symbol name relpath the file's character array - _cm_encode_fpath(sym "${relpath}") - # Get the symbol name for the parent directory - if(dirpath STREQUAL "") - set(parent_sym root_directory) - else() - _cm_encode_fpath(parent_sym "${dirpath}") - endif() - # Generate the rule for the intermediate source file - _cmrc_generate_intermediate_cpp(${lib_ns} ${sym} "${abs_out}" "${abs_in}") - target_sources(${name} PRIVATE "${abs_out}") - set_property(TARGET ${name} APPEND PROPERTY CMRC_EXTERN_DECLS - "// Pointers to ${input}" - "extern const char* const ${sym}_begin\;" - "extern const char* const ${sym}_end\;" - ) - get_filename_component(leaf "${relpath}" NAME) - set_property( - TARGET ${name} - APPEND PROPERTY CMRC_MAKE_FILES - "root_index.emplace(" - " \"${ARG_PREFIX}${relpath}\"," - " ${parent_sym}_dir.directory.add_file(" - " \"${leaf}\"," - " res_chars::${sym}_begin," - " res_chars::${sym}_end" - " )" - ")\;" - ) - endforeach() -endfunction() - -function(_cmrc_generate_intermediate_cpp lib_ns symbol outfile infile) - add_custom_command( - # This is the file we will generate - OUTPUT "${outfile}" - # These are the primary files that affect the output - DEPENDS "${infile}" "${_CMRC_SCRIPT}" - COMMAND - "${CMAKE_COMMAND}" - -D_CMRC_GENERATE_MODE=TRUE - -DNAMESPACE=${lib_ns} - -DSYMBOL=${symbol} - "-DINPUT_FILE=${infile}" - "-DOUTPUT_FILE=${outfile}" - -P "${_CMRC_SCRIPT}" - COMMENT "Generating intermediate file for ${infile}" - ) -endfunction() - -function(_cm_encode_fpath var fpath) - string(MAKE_C_IDENTIFIER "${fpath}" ident) - string(MD5 hash "${fpath}") - string(SUBSTRING "${hash}" 0 4 hash) - set(${var} f_${hash}_${ident} PARENT_SCOPE) -endfunction() diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.CMake-wiki b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.CMake-wiki deleted file mode 100644 index c8c9a04aab9..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.CMake-wiki +++ /dev/null @@ -1,22 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -The views and conclusions contained in the software and documentation are those -of the authors and should not be interpreted as representing official policies, -either expressed or implied, of the FreeBSD Project. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.CMakeRC b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.CMakeRC deleted file mode 100644 index 2d02f194ce3..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.CMakeRC +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 vector-of-bool - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.Catch2 b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.Catch2 deleted file mode 100644 index 36b7cd93cdf..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.Catch2 +++ /dev/null @@ -1,23 +0,0 @@ -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.Eigen b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.Eigen deleted file mode 100644 index 11971ffe25b..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.Eigen +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright (c) 2011, Intel Corporation. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of Intel Corporation nor the names of its contributors may - be used to endorse or promote products derived from this software without - specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ \ No newline at end of file diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.OVITO b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.OVITO deleted file mode 100644 index 94a9ed024d3..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.OVITO +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.UseLATEX b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.UseLATEX deleted file mode 100644 index 49d3bcd1285..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.UseLATEX +++ /dev/null @@ -1,28 +0,0 @@ -This software is released under the BSD 3-Clause License. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.VTK b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.VTK deleted file mode 100644 index 42f1028a1d0..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.VTK +++ /dev/null @@ -1,34 +0,0 @@ -/*========================================================================= - - Program: Visualization Toolkit - Module: Copyright.txt - -Copyright (c) 1993-2015 Ken Martin, Will Schroeder, Bill Lorensen -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names - of any contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -=========================================================================*/ diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.qgv b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.qgv deleted file mode 100644 index 65c5ca88a67..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.qgv +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.qt-gstreamer b/extern/ycm/ycm-0.11.0/3rdparty/COPYING.qt-gstreamer deleted file mode 100644 index 4b417765f3a..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/COPYING.qt-gstreamer +++ /dev/null @@ -1,22 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/Catch.cmake b/extern/ycm/ycm-0.11.0/3rdparty/Catch.cmake deleted file mode 100644 index 486e323318c..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/Catch.cmake +++ /dev/null @@ -1,175 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -Catch ------ - -This module defines a function to help use the Catch test framework. - -The :command:`catch_discover_tests` discovers tests by asking the compiled test -executable to enumerate its tests. This does not require CMake to be re-run -when tests change. However, it may not work in a cross-compiling environment, -and setting test properties is less convenient. - -This command is intended to replace use of :command:`add_test` to register -tests, and will create a separate CTest test for each Catch test case. Note -that this is in some cases less efficient, as common set-up and tear-down logic -cannot be shared by multiple test cases executing in the same instance. -However, it provides more fine-grained pass/fail information to CTest, which is -usually considered as more beneficial. By default, the CTest test name is the -same as the Catch name; see also ``TEST_PREFIX`` and ``TEST_SUFFIX``. - -.. command:: catch_discover_tests - - Automatically add tests with CTest by querying the compiled test executable - for available tests:: - - catch_discover_tests(target - [TEST_SPEC arg1...] - [EXTRA_ARGS arg1...] - [WORKING_DIRECTORY dir] - [TEST_PREFIX prefix] - [TEST_SUFFIX suffix] - [PROPERTIES name1 value1...] - [TEST_LIST var] - ) - - ``catch_discover_tests`` sets up a post-build command on the test executable - that generates the list of tests by parsing the output from running the test - with the ``--list-test-names-only`` argument. This ensures that the full - list of tests is obtained. Since test discovery occurs at build time, it is - not necessary to re-run CMake when the list of tests changes. - However, it requires that :prop_tgt:`CROSSCOMPILING_EMULATOR` is properly set - in order to function in a cross-compiling environment. - - Additionally, setting properties on tests is somewhat less convenient, since - the tests are not available at CMake time. Additional test properties may be - assigned to the set of tests as a whole using the ``PROPERTIES`` option. If - more fine-grained test control is needed, custom content may be provided - through an external CTest script using the :prop_dir:`TEST_INCLUDE_FILES` - directory property. The set of discovered tests is made accessible to such a - script via the ``_TESTS`` variable. - - The options are: - - ``target`` - Specifies the Catch executable, which must be a known CMake executable - target. CMake will substitute the location of the built executable when - running the test. - - ``TEST_SPEC arg1...`` - Specifies test cases, wildcarded test cases, tags and tag expressions to - pass to the Catch executable with the ``--list-test-names-only`` argument. - - ``EXTRA_ARGS arg1...`` - Any extra arguments to pass on the command line to each test case. - - ``WORKING_DIRECTORY dir`` - Specifies the directory in which to run the discovered test cases. If this - option is not provided, the current binary directory is used. - - ``TEST_PREFIX prefix`` - Specifies a ``prefix`` to be prepended to the name of each discovered test - case. This can be useful when the same test executable is being used in - multiple calls to ``catch_discover_tests()`` but with different - ``TEST_SPEC`` or ``EXTRA_ARGS``. - - ``TEST_SUFFIX suffix`` - Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of - every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may - be specified. - - ``PROPERTIES name1 value1...`` - Specifies additional properties to be set on all tests discovered by this - invocation of ``catch_discover_tests``. - - ``TEST_LIST var`` - Make the list of tests available in the variable ``var``, rather than the - default ``_TESTS``. This can be useful when the same test - executable is being used in multiple calls to ``catch_discover_tests()``. - Note that this variable is only available in CTest. - -#]=======================================================================] - -#------------------------------------------------------------------------------ -function(catch_discover_tests TARGET) - cmake_parse_arguments( - "" - "" - "TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST" - "TEST_SPEC;EXTRA_ARGS;PROPERTIES" - ${ARGN} - ) - - if(NOT _WORKING_DIRECTORY) - set(_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endif() - if(NOT _TEST_LIST) - set(_TEST_LIST ${TARGET}_TESTS) - endif() - - ## Generate a unique name based on the extra arguments - string(SHA1 args_hash "${_TEST_SPEC} ${_EXTRA_ARGS}") - string(SUBSTRING ${args_hash} 0 7 args_hash) - - # Define rule to generate test list for aforementioned test executable - set(ctest_include_file "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_include-${args_hash}.cmake") - set(ctest_tests_file "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_tests-${args_hash}.cmake") - get_property(crosscompiling_emulator - TARGET ${TARGET} - PROPERTY CROSSCOMPILING_EMULATOR - ) - add_custom_command( - TARGET ${TARGET} POST_BUILD - BYPRODUCTS "${ctest_tests_file}" - COMMAND "${CMAKE_COMMAND}" - -D "TEST_TARGET=${TARGET}" - -D "TEST_EXECUTABLE=$" - -D "TEST_EXECUTOR=${crosscompiling_emulator}" - -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}" - -D "TEST_SPEC=${_TEST_SPEC}" - -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}" - -D "TEST_PROPERTIES=${_PROPERTIES}" - -D "TEST_PREFIX=${_TEST_PREFIX}" - -D "TEST_SUFFIX=${_TEST_SUFFIX}" - -D "TEST_LIST=${_TEST_LIST}" - -D "CTEST_FILE=${ctest_tests_file}" - -P "${_CATCH_DISCOVER_TESTS_SCRIPT}" - VERBATIM - ) - - file(WRITE "${ctest_include_file}" - "if(EXISTS \"${ctest_tests_file}\")\n" - " include(\"${ctest_tests_file}\")\n" - "else()\n" - " add_test(${TARGET}_NOT_BUILT-${args_hash} ${TARGET}_NOT_BUILT-${args_hash})\n" - "endif()\n" - ) - - if(NOT ${CMAKE_VERSION} VERSION_LESS "3.10.0") - # Add discovered tests to directory TEST_INCLUDE_FILES - set_property(DIRECTORY - APPEND PROPERTY TEST_INCLUDE_FILES "${ctest_include_file}" - ) - else() - # Add discovered tests as directory TEST_INCLUDE_FILE if possible - get_property(test_include_file_set DIRECTORY PROPERTY TEST_INCLUDE_FILE SET) - if (NOT ${test_include_file_set}) - set_property(DIRECTORY - PROPERTY TEST_INCLUDE_FILE "${ctest_include_file}" - ) - else() - message(FATAL_ERROR - "Cannot set more than one TEST_INCLUDE_FILE" - ) - endif() - endif() - -endfunction() - -############################################################################### - -set(_CATCH_DISCOVER_TESTS_SCRIPT - ${CMAKE_CURRENT_LIST_DIR}/CatchAddTests.cmake -) diff --git a/extern/ycm/ycm-0.11.0/3rdparty/CatchAddTests.cmake b/extern/ycm/ycm-0.11.0/3rdparty/CatchAddTests.cmake deleted file mode 100644 index ca5ebc17e59..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/CatchAddTests.cmake +++ /dev/null @@ -1,106 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -set(prefix "${TEST_PREFIX}") -set(suffix "${TEST_SUFFIX}") -set(spec ${TEST_SPEC}) -set(extra_args ${TEST_EXTRA_ARGS}) -set(properties ${TEST_PROPERTIES}) -set(script) -set(suite) -set(tests) - -function(add_command NAME) - set(_args "") - foreach(_arg ${ARGN}) - if(_arg MATCHES "[^-./:a-zA-Z0-9_]") - set(_args "${_args} [==[${_arg}]==]") # form a bracket_argument - else() - set(_args "${_args} ${_arg}") - endif() - endforeach() - set(script "${script}${NAME}(${_args})\n" PARENT_SCOPE) -endfunction() - -macro(_add_catch_test_labels LINE) - # convert to list of tags - string(REPLACE "][" "]\\;[" tags ${line}) - - add_command( - set_tests_properties "${prefix}${test}${suffix}" - PROPERTIES - LABELS "${tags}" - ) -endmacro() - -macro(_add_catch_test LINE) - set(test ${line}) - # use escape commas to handle properly test cases with commans inside the name - string(REPLACE "," "\\," test_name ${test}) - # ...and add to script - add_command( - add_test "${prefix}${test}${suffix}" - ${TEST_EXECUTOR} - "${TEST_EXECUTABLE}" - "${test_name}" - ${extra_args} - ) - - add_command( - set_tests_properties "${prefix}${test}${suffix}" - PROPERTIES - WORKING_DIRECTORY "${TEST_WORKING_DIR}" - ${properties} - ) - list(APPEND tests "${prefix}${test}${suffix}") -endmacro() - -# Run test executable to get list of available tests -if(NOT EXISTS "${TEST_EXECUTABLE}") - message(FATAL_ERROR - "Specified test executable '${TEST_EXECUTABLE}' does not exist" - ) -endif() -execute_process( - COMMAND ${TEST_EXECUTOR} "${TEST_EXECUTABLE}" ${spec} --list-tests - OUTPUT_VARIABLE output - RESULT_VARIABLE result -) -# Catch --list-test-names-only reports the number of tests, so 0 is... surprising -if(${result} EQUAL 0) - message(WARNING - "Test executable '${TEST_EXECUTABLE}' contains no tests!\n" - ) -elseif(${result} LESS 0) - message(FATAL_ERROR - "Error running test executable '${TEST_EXECUTABLE}':\n" - " Result: ${result}\n" - " Output: ${output}\n" - ) -endif() - -string(REPLACE "\n" ";" output "${output}") -set(test) -set(tags_regex "(\\[([^\\[]*)\\])+$") - -# Parse output -foreach(line ${output}) - # lines without leading whitespaces are catch output not tests - if(${line} MATCHES "^[ \t]+") - # strip leading spaces and tabs - string(REGEX REPLACE "^[ \t]+" "" line ${line}) - - if(${line} MATCHES "${tags_regex}") - _add_catch_test_labels(${line}) - else() - _add_catch_test(${line}) - endif() - endif() -endforeach() - -# Create a list of all discovered tests, which users may use to e.g. set -# properties on the tests -add_command(set ${TEST_LIST} ${tests}) - -# Write CTest script -file(WRITE "${CTEST_FILE}" "${script}") diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindEigen3.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindEigen3.cmake deleted file mode 100644 index 4d9bc1a5252..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindEigen3.cmake +++ /dev/null @@ -1,107 +0,0 @@ -# - Try to find Eigen3 lib -# -# This module supports requiring a minimum version, e.g. you can do -# find_package(Eigen3 3.1.2) -# to require version 3.1.2 or newer of Eigen3. -# -# Once done this will define -# -# EIGEN3_FOUND - system has eigen lib with correct version -# EIGEN3_INCLUDE_DIR - the eigen include directory -# EIGEN3_VERSION - eigen version -# -# and the following imported target: -# -# Eigen3::Eigen - The header-only Eigen library -# -# This module reads hints about search locations from -# the following environment variables: -# -# EIGEN3_ROOT -# EIGEN3_ROOT_DIR - -# Copyright (c) 2006, 2007 Montel Laurent, -# Copyright (c) 2008, 2009 Gael Guennebaud, -# Copyright (c) 2009 Benoit Jacob -# Redistribution and use is allowed according to the terms of the 2-clause BSD license. - -if(NOT Eigen3_FIND_VERSION) - if(NOT Eigen3_FIND_VERSION_MAJOR) - set(Eigen3_FIND_VERSION_MAJOR 2) - endif(NOT Eigen3_FIND_VERSION_MAJOR) - if(NOT Eigen3_FIND_VERSION_MINOR) - set(Eigen3_FIND_VERSION_MINOR 91) - endif(NOT Eigen3_FIND_VERSION_MINOR) - if(NOT Eigen3_FIND_VERSION_PATCH) - set(Eigen3_FIND_VERSION_PATCH 0) - endif(NOT Eigen3_FIND_VERSION_PATCH) - - set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") -endif(NOT Eigen3_FIND_VERSION) - -macro(_eigen3_check_version) - file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) - - string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") - set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") - string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") - set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") - string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") - set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") - - set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) - if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - set(EIGEN3_VERSION_OK FALSE) - else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - set(EIGEN3_VERSION_OK TRUE) - endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - - if(NOT EIGEN3_VERSION_OK) - - message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " - "but at least version ${Eigen3_FIND_VERSION} is required") - endif(NOT EIGEN3_VERSION_OK) -endmacro(_eigen3_check_version) - -if (EIGEN3_INCLUDE_DIR) - - # in cache already - _eigen3_check_version() - set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) - set(Eigen3_FOUND ${EIGEN3_VERSION_OK}) - -else (EIGEN3_INCLUDE_DIR) - - # search first if an Eigen3Config.cmake is available in the system, - # if successful this would set EIGEN3_INCLUDE_DIR and the rest of - # the script will work as usual - find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET) - - if(NOT EIGEN3_INCLUDE_DIR) - find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library - HINTS - ENV EIGEN3_ROOT - ENV EIGEN3_ROOT_DIR - PATHS - ${CMAKE_INSTALL_PREFIX}/include - ${KDE4_INCLUDE_DIR} - PATH_SUFFIXES eigen3 eigen - ) - endif(NOT EIGEN3_INCLUDE_DIR) - - if(EIGEN3_INCLUDE_DIR) - _eigen3_check_version() - endif(EIGEN3_INCLUDE_DIR) - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) - - mark_as_advanced(EIGEN3_INCLUDE_DIR) - -endif(EIGEN3_INCLUDE_DIR) - -if(EIGEN3_FOUND AND NOT TARGET Eigen3::Eigen) - add_library(Eigen3::Eigen INTERFACE IMPORTED) - set_target_properties(Eigen3::Eigen PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${EIGEN3_INCLUDE_DIR}") -endif() diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindFFMPEG.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindFFMPEG.cmake deleted file mode 100644 index 4a08e879c4e..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindFFMPEG.cmake +++ /dev/null @@ -1,132 +0,0 @@ -# -# Find the native FFMPEG includes and library -# This module defines -# FFMPEG_INCLUDE_DIR, where to find avcodec.h, avformat.h ... -# FFMPEG_LIBRARIES, the libraries to link against to use FFMPEG. -# FFMPEG_FOUND, If false, do not try to use FFMPEG. -# FFMPEG_ROOT, if this module use this path to find FFMPEG headers -# and libraries. - -# Macro to find header and lib directories -# example: FFMPEG_FIND(AVFORMAT avformat avformat.h) -MACRO(FFMPEG_FIND varname shortname headername) - # old version of ffmpeg put header in $prefix/include/[ffmpeg] - # so try to find header in include directory - FIND_PATH(FFMPEG_${varname}_INCLUDE_DIRS lib${shortname}/${headername} - PATHS - ${FFMPEG_ROOT}/include/lib${shortname} - $ENV{FFMPEG_DIR}/include/lib${shortname} - ~/Library/Frameworks/lib${shortname} - /Library/Frameworks/lib${shortname} - /usr/local/include/lib${shortname} - /usr/include/lib${shortname} - /sw/include/lib${shortname} # Fink - /opt/local/include/lib${shortname} # DarwinPorts - /opt/csw/include/lib${shortname} # Blastwave - /opt/include/lib${shortname} - /usr/freeware/include/lib${shortname} - PATH_SUFFIXES ffmpeg - DOC "Location of FFMPEG Headers" - ) - - FIND_PATH(FFMPEG_${varname}_INCLUDE_DIRS lib${shortname}/${headername} - PATHS - ${FFMPEG_ROOT}/include - $ENV{FFMPEG_DIR}/include - ~/Library/Frameworks - /Library/Frameworks - /usr/local/include - /usr/include - /sw/include # Fink - /opt/local/include # DarwinPorts - /opt/csw/include # Blastwave - /opt/include - /usr/freeware/include - PATH_SUFFIXES ffmpeg - DOC "Location of FFMPEG Headers" - ) - - FIND_LIBRARY(FFMPEG_${varname}_LIBRARIES - NAMES ${shortname} - PATHS - ${FFMPEG_ROOT}/lib - $ENV{FFMPEG_DIR}/lib - ~/Library/Frameworks - /Library/Frameworks - /usr/local/lib - /usr/local/lib64 - /usr/lib - /usr/lib64 - /sw/lib - /opt/local/lib - /opt/csw/lib - /opt/lib - /usr/freeware/lib64 - DOC "Location of FFMPEG Libraries" - ) - - IF (FFMPEG_${varname}_LIBRARIES AND FFMPEG_${varname}_INCLUDE_DIRS) - SET(FFMPEG_${varname}_FOUND 1) - ENDIF(FFMPEG_${varname}_LIBRARIES AND FFMPEG_${varname}_INCLUDE_DIRS) - -ENDMACRO(FFMPEG_FIND) - -SET(FFMPEG_ROOT "$ENV{FFMPEG_DIR}" CACHE PATH "Location of FFMPEG") - -# find stdint.h -IF(WIN32) - - FIND_PATH(FFMPEG_STDINT_INCLUDE_DIR stdint.h - PATHS - ${FFMPEG_ROOT}/include - $ENV{FFMPEG_DIR}/include - ~/Library/Frameworks - /Library/Frameworks - /usr/local/include - /usr/include - /sw/include # Fink - /opt/local/include # DarwinPorts - /opt/csw/include # Blastwave - /opt/include - /usr/freeware/include - PATH_SUFFIXES ffmpeg - DOC "Location of FFMPEG stdint.h Header" - ) - - IF (FFMPEG_STDINT_INCLUDE_DIR) - SET(STDINT_OK TRUE) - ENDIF() - -ELSE() - - SET(STDINT_OK TRUE) - -ENDIF() - -FFMPEG_FIND(LIBAVFORMAT avformat avformat.h) -FFMPEG_FIND(LIBAVDEVICE avdevice avdevice.h) -FFMPEG_FIND(LIBAVCODEC avcodec avcodec.h) -FFMPEG_FIND(LIBAVUTIL avutil avutil.h) -FFMPEG_FIND(LIBSWSCALE swscale swscale.h) # not sure about the header to look for here. - -SET(FFMPEG_FOUND "NO") - -# Note we don't check FFMPEG_LIBSWSCALE_FOUND, FFMPEG_LIBAVDEVICE_FOUND, -# and FFMPEG_LIBAVUTIL_FOUND as they are optional. -IF (FFMPEG_LIBAVFORMAT_FOUND AND FFMPEG_LIBAVCODEC_FOUND AND STDINT_OK) - - SET(FFMPEG_FOUND "YES") - - SET(FFMPEG_INCLUDE_DIR ${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}) - - SET(FFMPEG_LIBRARY_DIRS ${FFMPEG_LIBAVFORMAT_LIBRARY_DIRS}) - - # Note we don't add FFMPEG_LIBSWSCALE_LIBRARIES here, - # it will be added if found later. - SET(FFMPEG_LIBRARIES - ${FFMPEG_LIBAVFORMAT_LIBRARIES} - ${FFMPEG_LIBAVDEVICE_LIBRARIES} - ${FFMPEG_LIBAVCODEC_LIBRARIES} - ${FFMPEG_LIBAVUTIL_LIBRARIES} - ${FFMPEG_LIBSWSCALE_LIBRARIES}) -ENDIF() \ No newline at end of file diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindGLIB2.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindGLIB2.cmake deleted file mode 100644 index b608ab18877..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindGLIB2.cmake +++ /dev/null @@ -1,66 +0,0 @@ -# - Try to find the GLIB2 libraries -# Once done this will define -# -# GLIB2_FOUND - system has glib2 -# GLIB2_INCLUDE_DIR - the glib2 include directory -# GLIB2_LIBRARIES - glib2 library - -# Copyright (c) 2008 Laurent Montel, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - - -if(GLIB2_INCLUDE_DIR AND GLIB2_LIBRARIES) - # Already in cache, be silent - set(GLIB2_FIND_QUIETLY TRUE) -endif(GLIB2_INCLUDE_DIR AND GLIB2_LIBRARIES) - -if (NOT WIN32) - find_package(PkgConfig QUIET) - if(PKG_CONFIG_FOUND) - pkg_check_modules(PKG_GLIB QUIET glib-2.0) - endif() -endif(NOT WIN32) - -find_path(GLIB2_MAIN_INCLUDE_DIR glib.h - PATH_SUFFIXES glib-2.0 - HINTS ${PKG_GLIB_INCLUDE_DIRS} ${PKG_GLIB_INCLUDEDIR}) - -# search the glibconfig.h include dir under the same root where the library is found -find_library(GLIB2_LIBRARIES - NAMES glib-2.0 - HINTS ${PKG_GLIB_LIBRARY_DIRS} ${PKG_GLIB_LIBDIR}) - -find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h - PATH_SUFFIXES glib-2.0/include ../lib/glib-2.0/include - HINTS ${PKG_GLIB_INCLUDE_DIRS} ${PKG_GLIB_LIBRARIES} ${CMAKE_SYSTEM_LIBRARY_PATH}) - -set(GLIB2_INCLUDE_DIR ${GLIB2_MAIN_INCLUDE_DIR}) - -# not sure if this include dir is optional or required -# for now it is optional -if(GLIB2_INTERNAL_INCLUDE_DIR) - set(GLIB2_INCLUDE_DIR ${GLIB2_INCLUDE_DIR} ${GLIB2_INTERNAL_INCLUDE_DIR}) -endif(GLIB2_INTERNAL_INCLUDE_DIR) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(GLIB2 DEFAULT_MSG GLIB2_LIBRARIES GLIB2_MAIN_INCLUDE_DIR) - -mark_as_advanced(GLIB2_INCLUDE_DIR GLIB2_LIBRARIES) - - -find_program(GLIB2_GENMARSHAL_UTIL glib-genmarshal) - -macro(glib2_genmarshal output_name) - file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/genmarshal_tmp) - foreach(_declaration ${ARGN}) - file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/genmarshal_tmp "${_declaration}\n") - endforeach() - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${output_name}.h ${CMAKE_CURRENT_BINARY_DIR}/${output_name}.c - COMMAND ${GLIB2_GENMARSHAL_UTIL} --header genmarshal_tmp > ${output_name}.h - COMMAND ${GLIB2_GENMARSHAL_UTIL} --body genmarshal_tmp > ${output_name}.c - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ) -endmacro() diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindGObject.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindGObject.cmake deleted file mode 100644 index b3a38ceec9b..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindGObject.cmake +++ /dev/null @@ -1,67 +0,0 @@ -# - Try to find GObject -# Once done this will define -# -# GOBJECT_FOUND - system has GObject -# GOBJECT_INCLUDE_DIR - the GObject include directory -# GOBJECT_LIBRARIES - the libraries needed to use GObject -# GOBJECT_DEFINITIONS - Compiler switches required for using GObject - -# Copyright (c) 2006, Tim Beaulen -# Copyright (c) 2008 Helio Chissini de Castro, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - - -IF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES) - # in cache already - SET(GObject_FIND_QUIETLY TRUE) -ELSE (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES) - SET(GObject_FIND_QUIETLY FALSE) -ENDIF (GOBJECT_INCLUDE_DIR AND GOBJECT_LIBRARIES) - -IF (NOT WIN32) - FIND_PACKAGE(PkgConfig QUIET) - IF (PkgConfig_FOUND) - # use pkg-config to get the directories and then use these values - # in the FIND_PATH() and FIND_LIBRARY() calls - PKG_CHECK_MODULES(PKG_GOBJECT2 QUIET gobject-2.0) - IF (PKG_GOBJECT2_FOUND) - SET(GOBJECT_DEFINITIONS ${PKG_GOBJECT2_CFLAGS}) - ENDIF (PKG_GOBJECT2_FOUND) - ENDIF (PkgConfig_FOUND) -ENDIF (NOT WIN32) - -FIND_PATH(GOBJECT_INCLUDE_DIR gobject/gobject.h - HINTS ${PKG_GOBJECT2_INCLUDE_DIRS} ${PKG_GOBJECT2_INCLUDEDIR} - PATHS /usr/include/glib-2.0/ - PATH_SUFFIXES glib-2.0 - ) - -FIND_LIBRARY(_GObjectLibs NAMES gobject-2.0 - HINTS - ${PKG_GOBJECT2_LIBRARY_DIRS} - ${PKG_GOBJECT2_LIBDIR} - ) -FIND_LIBRARY(_GModuleLibs NAMES gmodule-2.0 - HINTS - ${PKG_GOBJECT2_LIBRARY_DIRS} - ${PKG_GOBJECT2_LIBDIR} - ) -FIND_LIBRARY(_GThreadLibs NAMES gthread-2.0 - HINTS - ${PKG_GOBJECT2_LIBRARY_DIRS} - ${PKG_GOBJECT2_LIBDIR} - ) -FIND_LIBRARY(_GLibs NAMES glib-2.0 - HINTS - ${PKG_GOBJECT2_LIBRARY_DIRS} - ${PKG_GOBJECT2_LIBDIR} - ) - -SET (GOBJECT_LIBRARIES ${_GObjectLibs} ${_GModuleLibs} ${_GThreadLibs} ${_GLibs}) - -MARK_AS_ADVANCED(GOBJECT_INCLUDE_DIR GOBJECT_LIBRARIES) - -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(GObject DEFAULT_MSG GOBJECT_INCLUDE_DIR GOBJECT_LIBRARIES) diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindGStreamer.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindGStreamer.cmake deleted file mode 100644 index 5b4712f00a9..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindGStreamer.cmake +++ /dev/null @@ -1,150 +0,0 @@ -# - Try to find GStreamer -# Once done this will define -# -# GSTREAMER_FOUND - system has GStreamer -# GSTREAMER_INCLUDE_DIR - the GStreamer main include directory -# GSTREAMER_INCLUDE_DIRS - the GStreamer include directories -# GSTREAMER_LIBRARY - the main GStreamer library -# GSTREAMER_PLUGIN_DIR - the GStreamer plugin directory -# -# And for all the plugin libraries specified in the COMPONENTS -# of find_package, this module will define: -# -# GSTREAMER__LIBRARY_FOUND - system has -# GSTREAMER__LIBRARY - the library -# GSTREAMER__INCLUDE_DIR - the include directory -# -# Copyright (c) 2010, Collabora Ltd. -# @author George Kiagiadakis -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -if (GSTREAMER_INCLUDE_DIR AND GSTREAMER_LIBRARY) - set(GStreamer_FIND_QUIETLY TRUE) -else() - set(GStreamer_FIND_QUIETLY FALSE) -endif() - -set(GSTREAMER_ABI_VERSION "1.0") - - -# Find the main library -find_package(PkgConfig) - -if (PKG_CONFIG_FOUND) - pkg_check_modules(PKG_GSTREAMER QUIET gstreamer-${GSTREAMER_ABI_VERSION}) - if(PKG_GSTREAMER_FOUND) - exec_program(${PKG_CONFIG_EXECUTABLE} - ARGS --variable pluginsdir gstreamer-${GSTREAMER_ABI_VERSION} - OUTPUT_VARIABLE PKG_GSTREAMER_PLUGIN_DIR) - endif() - set(GSTREAMER_DEFINITIONS ${PKG_GSTREAMER_CFLAGS}) -endif() - -find_library(GSTREAMER_LIBRARY - NAMES gstreamer-${GSTREAMER_ABI_VERSION} - HINTS ${PKG_GSTREAMER_LIBRARY_DIRS} ${PKG_GSTREAMER_LIBDIR}) - -find_path(GSTREAMER_INCLUDE_DIR - gst/gst.h - HINTS ${PKG_GSTREAMER_INCLUDE_DIRS} ${PKG_GSTREAMER_INCLUDEDIR} - PATH_SUFFIXES gstreamer-${GSTREAMER_ABI_VERSION}) - -find_path(GSTREAMER_gstconfig_INCLUDE_DIR - gst/gstconfig.h - HINTS ${PKG_GSTREAMER_INCLUDE_DIRS} ${PKG_GSTREAMER_INCLUDEDIR} - PATH_SUFFIXES gstreamer-${GSTREAMER_ABI_VERSION} - ../lib/gstreamer-${GSTREAMER_ABI_VERSION}/include) - -set(GSTREAMER_INCLUDE_DIRS ${GSTREAMER_INCLUDE_DIR} ${GSTREAMER_gstconfig_INCLUDE_DIR}) -list(REMOVE_DUPLICATES GSTREAMER_INCLUDE_DIRS) - -if (PKG_GSTREAMER_PLUGIN_DIR) - set(_GSTREAMER_PLUGIN_DIR ${PKG_GSTREAMER_PLUGIN_DIR}) -else() - get_filename_component(_GSTREAMER_LIB_DIR ${GSTREAMER_LIBRARY} PATH) - set(_GSTREAMER_PLUGIN_DIR ${_GSTREAMER_LIB_DIR}/gstreamer-${GSTREAMER_ABI_VERSION}) -endif() - -set(GSTREAMER_PLUGIN_DIR ${_GSTREAMER_PLUGIN_DIR} - CACHE PATH "The path to the gstreamer plugins installation directory") - -mark_as_advanced(GSTREAMER_LIBRARY - GSTREAMER_INCLUDE_DIR - GSTREAMER_gstconfig_INCLUDE_DIR - GSTREAMER_PLUGIN_DIR) - - -# Find additional libraries -include(MacroFindGStreamerLibrary) - -macro(_find_gst_component _name _header) - find_gstreamer_library(${_name} ${_header} ${GSTREAMER_ABI_VERSION} ${GStreamer_FIND_QUIETLY}) - set(_GSTREAMER_EXTRA_VARIABLES ${_GSTREAMER_EXTRA_VARIABLES} - GSTREAMER_${_name}_LIBRARY GSTREAMER_${_name}_INCLUDE_DIR) -endmacro() - -foreach(_component ${GStreamer_FIND_COMPONENTS}) - if (${_component} STREQUAL "base") - _find_gst_component(BASE gstbasesink.h) - elseif (${_component} STREQUAL "check") - _find_gst_component(CHECK gstcheck.h) - elseif (${_component} STREQUAL "controller") - _find_gst_component(CONTROLLER gstargbcontrolbinding.h) - elseif (${_component} STREQUAL "net") - _find_gst_component(NET gstnet.h) - else() - message (AUTHOR_WARNING "FindGStreamerPluginsBase.cmake: Invalid component \"${_component}\" was specified") - endif() -endforeach() - - -# Version check -if (GStreamer_FIND_VERSION) - if (PKG_GSTREAMER_FOUND) - if("${PKG_GSTREAMER_VERSION}" VERSION_LESS "${GStreamer_FIND_VERSION}") - if(NOT GStreamer_FIND_QUIETLY) - message(STATUS "Found GStreamer version ${PKG_GSTREAMER_VERSION}, but at least version ${GStreamer_FIND_VERSION} is required") - endif() - set(GSTREAMER_VERSION_COMPATIBLE FALSE) - else() - set(GSTREAMER_VERSION_COMPATIBLE TRUE) - endif() - elseif(GSTREAMER_INCLUDE_DIR) - include(CheckCXXSourceCompiles) - - set(CMAKE_REQUIRED_INCLUDES ${GSTREAMER_INCLUDE_DIR}) - string(REPLACE "." "," _comma_version ${GStreamer_FIND_VERSION}) - # Hack to invalidate the cached value - set(GSTREAMER_VERSION_COMPATIBLE GSTREAMER_VERSION_COMPATIBLE) - - check_cxx_source_compiles(" -#define G_BEGIN_DECLS -#define G_END_DECLS -#include - -#if GST_CHECK_VERSION(${_comma_version}) -int main() { return 0; } -#else -# error \"GStreamer version incompatible\" -#endif -" GSTREAMER_VERSION_COMPATIBLE) - - if (NOT GSTREAMER_VERSION_COMPATIBLE AND NOT GStreamer_FIND_QUIETLY) - message(STATUS "GStreamer ${GStreamer_FIND_VERSION} is required, but the version found is older") - endif() - else() - # We didn't find gstreamer at all - set(GSTREAMER_VERSION_COMPATIBLE FALSE) - endif() -else() - # No version constrain was specified, thus we consider the version compatible - set(GSTREAMER_VERSION_COMPATIBLE TRUE) -endif() - - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(GStreamer DEFAULT_MSG - GSTREAMER_LIBRARY GSTREAMER_INCLUDE_DIRS - GSTREAMER_VERSION_COMPATIBLE ${_GSTREAMER_EXTRA_VARIABLES}) diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindGStreamerPluginsBase.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindGStreamerPluginsBase.cmake deleted file mode 100644 index 516cdc03a4e..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindGStreamerPluginsBase.cmake +++ /dev/null @@ -1,94 +0,0 @@ -# - Try to find gst-plugins-base -# Once done this will define -# -# GSTREAMER_PLUGINS_BASE_FOUND - system has gst-plugins-base -# -# And for all the plugin libraries specified in the COMPONENTS -# of find_package, this module will define: -# -# GSTREAMER__LIBRARY_FOUND - system has -# GSTREAMER__LIBRARY - the library -# GSTREAMER__INCLUDE_DIR - the include directory -# -# Copyright (c) 2010, Collabora Ltd. -# @author George Kiagiadakis -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -set(GSTREAMER_ABI_VERSION "1.0") - - -# Find the pkg-config file for doing the version check -find_package(PkgConfig) - -if (PKG_CONFIG_FOUND) - pkg_check_modules(PKG_GSTREAMER_PLUGINS_BASE QUIET gstreamer-plugins-base-${GSTREAMER_ABI_VERSION}) -endif() - - -# Find the plugin libraries -include(MacroFindGStreamerLibrary) - -if (NOT DEFINED GStreamerPluginsBase_FIND_QUIETLY) - set(GStreamerPluginsBase_FIND_QUIETLY 0) -endif() - -macro(_find_gst_plugins_base_component _name _header) - find_gstreamer_library(${_name} ${_header} ${GSTREAMER_ABI_VERSION} ${GStreamerPluginsBase_FIND_QUIETLY}) - set(_GSTREAMER_PLUGINS_BASE_EXTRA_VARIABLES ${_GSTREAMER_PLUGINS_BASE_EXTRA_VARIABLES} - GSTREAMER_${_name}_LIBRARY GSTREAMER_${_name}_INCLUDE_DIR) -endmacro() - -foreach(_component ${GStreamerPluginsBase_FIND_COMPONENTS}) - if (${_component} STREQUAL "app") - _find_gst_plugins_base_component(APP gstappsrc.h) - elseif (${_component} STREQUAL "audio") - _find_gst_plugins_base_component(AUDIO audio.h) - elseif (${_component} STREQUAL "fft") - _find_gst_plugins_base_component(FFT gstfft.h) - elseif (${_component} STREQUAL "riff") - _find_gst_plugins_base_component(RIFF riff-ids.h) - elseif (${_component} STREQUAL "rtp") - _find_gst_plugins_base_component(RTP gstrtpbuffer.h) - elseif (${_component} STREQUAL "rtsp") - _find_gst_plugins_base_component(RTSP gstrtspdefs.h) - elseif (${_component} STREQUAL "sdp") - _find_gst_plugins_base_component(SDP gstsdp.h) - elseif (${_component} STREQUAL "tag") - _find_gst_plugins_base_component(TAG tag.h) - elseif (${_component} STREQUAL "pbutils") - _find_gst_plugins_base_component(PBUTILS pbutils.h) - elseif (${_component} STREQUAL "video") - _find_gst_plugins_base_component(VIDEO video.h) - else() - message (AUTHOR_WARNING "FindGStreamer.cmake: Invalid component \"${_component}\" was specified") - endif() -endforeach() - - -# Version check -if (GStreamerPluginsBase_FIND_VERSION) - if (PKG_GSTREAMER_PLUGINS_BASE_FOUND) - if("${PKG_GSTREAMER_PLUGINS_BASE_VERSION}" VERSION_LESS "${GStreamerPluginsBase_FIND_VERSION}") - if (NOT GStreamerPluginsBase_FIND_QUIETLY) - message(STATUS "Found gst-plugins-base version ${PKG_GSTREAMER_PLUGINS_BASE_VERSION}, but at least version ${GStreamerPluginsBase_FIND_VERSION} is required") - endif() - set(GSTREAMER_PLUGINS_BASE_VERSION_COMPATIBLE FALSE) - else() - set(GSTREAMER_PLUGINS_BASE_VERSION_COMPATIBLE TRUE) - endif() - else() - # We can't make any version checks without pkg-config, just assume version is compatible and hope... - set(GSTREAMER_PLUGINS_BASE_VERSION_COMPATIBLE TRUE) - endif() -else() - # No version constrain was specified, thus we consider the version compatible - set(GSTREAMER_PLUGINS_BASE_VERSION_COMPATIBLE TRUE) -endif() - - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(GStreamerPluginsBase DEFAULT_MSG - GSTREAMER_PLUGINS_BASE_VERSION_COMPATIBLE - ${_GSTREAMER_PLUGINS_BASE_EXTRA_VARIABLES}) diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindGraphviz.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindGraphviz.cmake deleted file mode 100644 index 089e307549f..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindGraphviz.cmake +++ /dev/null @@ -1,100 +0,0 @@ -# - Try to find Graphviz cgraph library -# Once done this will define -# -# Graphviz_FOUND - system has Graphviz installed -# Graphviz_LIBRARIES -# Graphviz_INCLUDE_DIRS - -if(EXISTS "$ENV{Graphviz_ROOT}") - set(Graphviz_POSSIBLE_INCDIRS - "$ENV{Graphviz_ROOT}/include" - "$ENV{Graphviz_ROOT}/include/graphviz") - - set(Graphviz_POSSIBLE_LIBRARY_PATHS - "$ENV{Graphviz_ROOT}/lib/release/dll" - "$ENV{Graphviz_ROOT}/lib/release/lib") -endif() - -##### check Graphviz_DIR -if(EXISTS "$ENV{Graphviz_DIR}") - set(Graphviz_POSSIBLE_INCDIRS - "$ENV{Graphviz_DIR}/include" - "$ENV{Graphviz_DIR}/include/graphviz") - - set(Graphviz_POSSIBLE_LIBRARY_PATHS - "$ENV{Graphviz_DIR}/lib/release/dll" - "$ENV{Graphviz_DIR}/lib/release/lib") -endif() - -if(Graphviz_DIR) - set(Graphviz_POSSIBLE_INCDIRS - "${Graphviz_DIR}/include" - "${Graphviz_DIR}/include/graphviz") - - set(Graphviz_POSSIBLE_LIBRARY_PATHS - "${Graphviz_DIR}/lib/release/dll" - "${Graphviz_DIR}/lib/release/lib") -endif() - -if(Graphviz_CGRAPH_LIBRARY ) - # in cache already - set(Graphviz_FIND_QUIETLY TRUE) -endif() - -# use pkg-config to get the directories and then use these values -# in the FIND_PATH() and FIND_LIBRARY() calls -if(NOT WIN32) - find_package(PkgConfig) - pkg_check_modules(Graphviz_GVC_PKG gvc QUIET) - pkg_check_modules(Graphviz_CGRAPH_PKG cgraph QUIET) - pkg_check_modules(Graphviz_CDT_PKG cdt QUIET) -endif() - -find_library(Graphviz_GVC_LIBRARY - NAMES gvc - libgvc - PATHS ${Graphviz_POSSIBLE_LIBRARY_PATHS} - /usr/lib - /usr/local/lib - HINTS ${Graphviz_GVC_PKG_LIBRARY_DIRS}) -mark_as_advanced(Graphviz_GVC_LIBRARY) - -find_library(Graphviz_CGRAPH_LIBRARY - NAMES cgraph - libcgraph - PATHS ${Graphviz_POSSIBLE_LIBRARY_PATHS} - /usr/lib - /usr/local/lib - HINTS ${Graphviz_CGRAPH_PKG_LIBRARY_DIRS}) -mark_as_advanced(Graphviz_CGRAPH_LIBRARY) - -find_library(Graphviz_CDT_LIBRARY - NAMES cdt - libcdt - PATHS ${Graphviz_POSSIBLE_LIBRARY_PATHS} - /usr/lib - /usr/local/lib - HINTS ${Graphviz_CDT_PKG_LIBRARY_DIRS}) -mark_as_advanced(Graphviz_CDT_LIBRARY) - -set(Graphviz_LIBRARIES ${Graphviz_GVC_LIBRARY} - ${Graphviz_CGRAPH_LIBRARY} - ${Graphviz_CDT_LIBRARY}) - -find_path(Graphviz_INCLUDE_DIR - NAMES cgraph.h - PATHS ${Graphviz_POSSIBLE_INCDIRS} - /usr/include - /usr/include/graphviz - /usr/local/include - /usr/local/include/graphviz - HINTS ${Graphviz_PKG_INCLUDE_DIR}) -mark_as_advanced(Graphviz_INCLUDE_DIR) - -set(Graphviz_INCLUDE_DIRS ${Graphviz_INCLUDE_DIR}) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Graphviz - FOUND_VAR Graphviz_FOUND - REQUIRED_VARS Graphviz_LIBRARIES - Graphviz_INCLUDE_DIRS) diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindOctave.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindOctave.cmake deleted file mode 100644 index 051a3d0fe3c..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindOctave.cmake +++ /dev/null @@ -1,179 +0,0 @@ -# - Find Octave -# GNU Octave is a high-level interpreted language, primarily intended for numerical computations. -# available at http://www.gnu.org/software/octave/ -# -# This module defines: -# OCTAVE_EXECUTABLE - octave interpreter -# OCTAVE_INCLUDE_DIRS - include path for mex.h, mexproto.h -# OCTAVE_LIBRARIES - required libraries: octinterp, octave, cruft -# OCTAVE_OCTINTERP_LIBRARY - path to the library octinterp -# OCTAVE_OCTAVE_LIBRARY - path to the library octave -# OCTAVE_CRUFT_LIBRARY - path to the library cruft -# OCTAVE_VERSION_STRING - octave version string -# OCTAVE_MAJOR_VERSION - major version -# OCTAVE_MINOR_VERSION - minor version -# OCTAVE_PATCH_VERSION - patch version -# OCTAVE_OCT_FILE_DIR - object files that will be dynamically loaded -# OCTAVE_OCT_LIB_DIR - oct libraries -# OCTAVE_ROOT_DIR - octave prefix -# -# The macro octave_add_oct allows to create compiled modules. -# octave_add_oct ( target_name -# [SOURCES] source1 [source2 ...] -# [LINK_LIBRARIES lib1 [lib2 ...]] -# [EXTENSION ext] -# ) -# -# To install it, you can the use the variable OCTAVE_OCT_FILE_DIR as follow: -# file ( RELATIVE_PATH PKG_OCTAVE_OCT_FILE_DIR ${OCTAVE_ROOT_DIR} ${OCTAVE_OCT_FILE_DIR} ) -# install ( -# TARGETS target_name -# DESTINATION ${PKG_OCTAVE_OCT_FILE_DIR} -# ) -#============================================================================= -# Copyright 2013, Julien Schueller -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# The views and conclusions contained in the software and documentation are those -# of the authors and should not be interpreted as representing official policies, -# either expressed or implied, of the FreeBSD Project. -#============================================================================= -find_program( OCTAVE_CONFIG_EXECUTABLE - NAMES octave-config - ) -if ( OCTAVE_CONFIG_EXECUTABLE ) - execute_process ( COMMAND ${OCTAVE_CONFIG_EXECUTABLE} -p PREFIX - OUTPUT_VARIABLE OCTAVE_ROOT_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE ) - - execute_process ( COMMAND ${OCTAVE_CONFIG_EXECUTABLE} -p BINDIR - OUTPUT_VARIABLE OCTAVE_BIN_PATHS - OUTPUT_STRIP_TRAILING_WHITESPACE ) - - execute_process ( COMMAND ${OCTAVE_CONFIG_EXECUTABLE} -p OCTINCLUDEDIR - OUTPUT_VARIABLE OCTAVE_INCLUDE_PATHS - OUTPUT_STRIP_TRAILING_WHITESPACE ) - - execute_process ( COMMAND ${OCTAVE_CONFIG_EXECUTABLE} -p OCTLIBDIR - OUTPUT_VARIABLE OCTAVE_LIBRARIES_PATHS - OUTPUT_STRIP_TRAILING_WHITESPACE ) - - execute_process ( COMMAND ${OCTAVE_CONFIG_EXECUTABLE} -p OCTFILEDIR - OUTPUT_VARIABLE OCTAVE_OCT_FILE_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE ) - - execute_process ( COMMAND ${OCTAVE_CONFIG_EXECUTABLE} -p OCTLIBDIR - OUTPUT_VARIABLE OCTAVE_OCT_LIB_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE ) - - execute_process ( COMMAND ${OCTAVE_CONFIG_EXECUTABLE} -v - OUTPUT_VARIABLE OCTAVE_VERSION_STRING - OUTPUT_STRIP_TRAILING_WHITESPACE ) - - if ( OCTAVE_VERSION_STRING ) - string ( REGEX REPLACE "([0-9]+)\\..*" "\\1" OCTAVE_MAJOR_VERSION ${OCTAVE_VERSION_STRING} ) - string ( REGEX REPLACE "[0-9]+\\.([0-9]+).*" "\\1" OCTAVE_MINOR_VERSION ${OCTAVE_VERSION_STRING} ) - string ( REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" OCTAVE_PATCH_VERSION ${OCTAVE_VERSION_STRING} ) - endif () -endif () -find_program( OCTAVE_EXECUTABLE - HINTS ${OCTAVE_BIN_PATHS} - NAMES octave - ) -find_library( OCTAVE_OCTINTERP_LIBRARY - NAMES octinterp liboctinterp - HINTS ${OCTAVE_LIBRARIES_PATHS} - ) -find_library( OCTAVE_OCTAVE_LIBRARY - NAMES octave liboctave - HINTS ${OCTAVE_LIBRARIES_PATHS} - ) -find_library( OCTAVE_CRUFT_LIBRARY - NAMES cruft libcruft - HINTS ${OCTAVE_LIBRARIES_PATHS} - ) - -set ( OCTAVE_LIBRARIES ${OCTAVE_OCTINTERP_LIBRARY} ) -list ( APPEND OCTAVE_LIBRARIES ${OCTAVE_OCTAVE_LIBRARY} ) -if ( ${OCTAVE_CRUFT_LIBRARY} ) - list ( APPEND OCTAVE_LIBRARIES ${OCTAVE_CRUFT_LIBRARY} ) -endif () - -find_path ( OCTAVE_INCLUDE_DIR - NAMES mex.h - HINTS ${OCTAVE_INCLUDE_PATHS} - ) - -set ( OCTAVE_INCLUDE_DIRS ${OCTAVE_INCLUDE_DIR} ) -macro ( octave_add_oct FUNCTIONNAME ) - set ( _CMD SOURCES ) - set ( _SOURCES ) - set ( _LINK_LIBRARIES ) - set ( _EXTENSION ) - set ( _OCT_EXTENSION oct ) - foreach ( _ARG ${ARGN}) - if ( ${_ARG} MATCHES SOURCES ) - set ( _CMD SOURCES ) - elseif ( ${_ARG} MATCHES LINK_LIBRARIES ) - set ( _CMD LINK_LIBRARIES ) - elseif ( ${_ARG} MATCHES EXTENSION ) - set ( _CMD EXTENSION ) - else () - if ( ${_CMD} MATCHES SOURCES ) - list ( APPEND _SOURCES "${_ARG}" ) - elseif ( ${_CMD} MATCHES LINK_LIBRARIES ) - list ( APPEND _LINK_LIBRARIES "${_ARG}" ) - elseif ( ${_CMD} MATCHES EXTENSION ) - set ( _OCT_EXTENSION ${_ARG} ) - endif () - endif () - endforeach () - add_library ( ${FUNCTIONNAME} SHARED ${_SOURCES} ) - target_link_libraries ( ${FUNCTIONNAME} ${OCTAVE_LIBRARIES} ${_LINK_LIBRARIES} ) - set_target_properties ( ${FUNCTIONNAME} PROPERTIES - PREFIX "" - SUFFIX ".${_OCT_EXTENSION}" - ) -endmacro () -# handle REQUIRED and QUIET options -include ( FindPackageHandleStandardArgs ) -if ( CMAKE_VERSION LESS 2.8.3 ) - find_package_handle_standard_args ( Octave DEFAULT_MSG OCTAVE_EXECUTABLE OCTAVE_ROOT_DIR OCTAVE_INCLUDE_DIRS OCTAVE_LIBRARIES OCTAVE_VERSION_STRING ) -else () - find_package_handle_standard_args ( Octave REQUIRED_VARS OCTAVE_EXECUTABLE OCTAVE_ROOT_DIR OCTAVE_INCLUDE_DIRS OCTAVE_LIBRARIES VERSION_VAR OCTAVE_VERSION_STRING ) -endif () -mark_as_advanced ( - OCTAVE_OCT_FILE_DIR - OCTAVE_OCT_LIB_DIR - OCTAVE_OCTINTERP_LIBRARY - OCTAVE_OCTAVE_LIBRARY - OCTAVE_CRUFT_LIBRARY - OCTAVE_LIBRARIES - OCTAVE_INCLUDE_DIR - OCTAVE_INCLUDE_DIRS - OCTAVE_ROOT_DIR - OCTAVE_VERSION_STRING - OCTAVE_MAJOR_VERSION - OCTAVE_MINOR_VERSION - OCTAVE_PATCH_VERSION -) - diff --git a/extern/ycm/ycm-0.11.0/3rdparty/FindQCustomPlot.cmake b/extern/ycm/ycm-0.11.0/3rdparty/FindQCustomPlot.cmake deleted file mode 100644 index 6de846af4f4..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/FindQCustomPlot.cmake +++ /dev/null @@ -1,15 +0,0 @@ -# Try to find the QCustomPlot library -# QCUSTOMPLOT_FOUND - system has QCustomPlot lib -# QCustomPlot_INCLUDE_DIRS - the include directories needed -# QCustomPlot_LIBRARIES - libraries needed - -FIND_PATH(QCUSTOMPLOT_INCLUDE_DIR NAMES qcustomplot.h) -FIND_LIBRARY(QCUSTOMPLOT_LIBRARY NAMES qcustomplot) - -SET(QCustomPlot_INCLUDE_DIRS ${QCUSTOMPLOT_INCLUDE_DIR}) -SET(QCustomPlot_LIBRARIES ${QCUSTOMPLOT_LIBRARY}) - -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(QCustomPlot DEFAULT_MSG QCUSTOMPLOT_LIBRARY QCUSTOMPLOT_INCLUDE_DIR) - -MARK_AS_ADVANCED(QCUSTOMPLOT_INCLUDE_DIR QCUSTOMPLOT_LIBRARY) diff --git a/extern/ycm/ycm-0.11.0/3rdparty/MacroFindGStreamerLibrary.cmake b/extern/ycm/ycm-0.11.0/3rdparty/MacroFindGStreamerLibrary.cmake deleted file mode 100644 index b46cbe8bbf7..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/MacroFindGStreamerLibrary.cmake +++ /dev/null @@ -1,57 +0,0 @@ -# - macro find_gstreamer_library -# -# Copyright (c) 2010, Collabora Ltd. -# @author George Kiagiadakis -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - -macro(find_gstreamer_library _name _header _abi_version _quiet) - string(TOLOWER ${_name} _lower_name) - string(TOUPPER ${_name} _upper_name) - - if (GSTREAMER_${_upper_name}_LIBRARY AND GSTREAMER_${_upper_name}_INCLUDE_DIR) - set(_GSTREAMER_${_upper_name}_QUIET TRUE) - else() - set(_GSTREAMER_${_upper_name}_QUIET FALSE) - endif() - - if (PKG_CONFIG_FOUND) - pkg_check_modules(PKG_GSTREAMER_${_upper_name} QUIET gstreamer-${_lower_name}-${_abi_version}) - endif() - - find_library(GSTREAMER_${_upper_name}_LIBRARY - NAMES gst${_lower_name}-${_abi_version} - HINTS ${PKG_GSTREAMER_${_upper_name}_LIBRARY_DIRS} - ${PKG_GSTREAMER_${_upper_name}_LIBDIR} - ) - - find_path(GSTREAMER_${_upper_name}_INCLUDE_DIR - gst/${_lower_name}/${_header} - HINTS ${PKG_GSTREAMER_${_upper_name}_INCLUDE_DIRS} - ${PKG_GSTREAMER_${_upper_name}_INCLUDEDIR} - PATH_SUFFIXES gstreamer-${_abi_version} - ) - - if (GSTREAMER_${_upper_name}_LIBRARY AND GSTREAMER_${_upper_name}_INCLUDE_DIR) - set(GSTREAMER_${_upper_name}_LIBRARY_FOUND TRUE) - else() - set(GSTREAMER_${_upper_name}_LIBRARY_FOUND FALSE) - endif() - - if (NOT _GSTREAMER_${_upper_name}_QUIET AND NOT _quiet) - if (GSTREAMER_${_upper_name}_LIBRARY) - message(STATUS "Found GSTREAMER_${_upper_name}_LIBRARY: ${GSTREAMER_${_upper_name}_LIBRARY}") - else() - message(STATUS "Could NOT find GSTREAMER_${_upper_name}_LIBRARY") - endif() - - if (GSTREAMER_${_upper_name}_INCLUDE_DIR) - message(STATUS "Found GSTREAMER_${_upper_name}_INCLUDE_DIR: ${GSTREAMER_${_upper_name}_INCLUDE_DIR}") - else() - message(STATUS "Could NOT find GSTREAMER_${_upper_name}_INCLUDE_DIR") - endif() - endif() - - mark_as_advanced(GSTREAMER_${_upper_name}_LIBRARY GSTREAMER_${_upper_name}_INCLUDE_DIR) -endmacro() diff --git a/extern/ycm/ycm-0.11.0/3rdparty/ParseAndAddCatchTests.cmake b/extern/ycm/ycm-0.11.0/3rdparty/ParseAndAddCatchTests.cmake deleted file mode 100644 index 925d9328196..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/ParseAndAddCatchTests.cmake +++ /dev/null @@ -1,225 +0,0 @@ -#==================================================================================================# -# supported macros # -# - TEST_CASE, # -# - SCENARIO, # -# - TEST_CASE_METHOD, # -# - CATCH_TEST_CASE, # -# - CATCH_SCENARIO, # -# - CATCH_TEST_CASE_METHOD. # -# # -# Usage # -# 1. make sure this module is in the path or add this otherwise: # -# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake.modules/") # -# 2. make sure that you've enabled testing option for the project by the call: # -# enable_testing() # -# 3. add the lines to the script for testing target (sample CMakeLists.txt): # -# project(testing_target) # -# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake.modules/") # -# enable_testing() # -# # -# find_path(CATCH_INCLUDE_DIR "catch.hpp") # -# include_directories(${INCLUDE_DIRECTORIES} ${CATCH_INCLUDE_DIR}) # -# # -# file(GLOB SOURCE_FILES "*.cpp") # -# add_executable(${PROJECT_NAME} ${SOURCE_FILES}) # -# # -# include(ParseAndAddCatchTests) # -# ParseAndAddCatchTests(${PROJECT_NAME}) # -# # -# The following variables affect the behavior of the script: # -# # -# PARSE_CATCH_TESTS_VERBOSE (Default OFF) # -# -- enables debug messages # -# PARSE_CATCH_TESTS_NO_HIDDEN_TESTS (Default OFF) # -# -- excludes tests marked with [!hide], [.] or [.foo] tags # -# PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME (Default ON) # -# -- adds fixture class name to the test name # -# PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME (Default ON) # -# -- adds cmake target name to the test name # -# PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS (Default OFF) # -# -- causes CMake to rerun when file with tests changes so that new tests will be discovered # -# # -# One can also set (locally) the optional variable OptionalCatchTestLauncher to precise the way # -# a test should be run. For instance to use test MPI, one can write # -# set(OptionalCatchTestLauncher ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NUMPROC}) # -# just before calling this ParseAndAddCatchTests function # -# # -# The AdditionalCatchParameters optional variable can be used to pass extra argument to the test # -# command. For example, to include successful tests in the output, one can write # -# set(AdditionalCatchParameters --success) # -# # -# After the script, the ParseAndAddCatchTests_TESTS property for the target, and for each source # -# file in the target is set, and contains the list of the tests extracted from that target, or # -# from that file. This is useful, for example to add further labels or properties to the tests. # -# # -#==================================================================================================# - -if (CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.8) - message(FATAL_ERROR "ParseAndAddCatchTests requires CMake 2.8.8 or newer") -endif() - -option(PARSE_CATCH_TESTS_VERBOSE "Print Catch to CTest parser debug messages" OFF) -option(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS "Exclude tests with [!hide], [.] or [.foo] tags" OFF) -option(PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME "Add fixture class name to the test name" ON) -option(PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME "Add target name to the test name" ON) -option(PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS "Add test file to CMAKE_CONFIGURE_DEPENDS property" OFF) - -function(ParseAndAddCatchTests_PrintDebugMessage) - if(PARSE_CATCH_TESTS_VERBOSE) - message(STATUS "ParseAndAddCatchTests: ${ARGV}") - endif() -endfunction() - -# This removes the contents between -# - block comments (i.e. /* ... */) -# - full line comments (i.e. // ... ) -# contents have been read into '${CppCode}'. -# !keep partial line comments -function(ParseAndAddCatchTests_RemoveComments CppCode) - string(ASCII 2 CMakeBeginBlockComment) - string(ASCII 3 CMakeEndBlockComment) - string(REGEX REPLACE "/\\*" "${CMakeBeginBlockComment}" ${CppCode} "${${CppCode}}") - string(REGEX REPLACE "\\*/" "${CMakeEndBlockComment}" ${CppCode} "${${CppCode}}") - string(REGEX REPLACE "${CMakeBeginBlockComment}[^${CMakeEndBlockComment}]*${CMakeEndBlockComment}" "" ${CppCode} "${${CppCode}}") - string(REGEX REPLACE "\n[ \t]*//+[^\n]+" "\n" ${CppCode} "${${CppCode}}") - - set(${CppCode} "${${CppCode}}" PARENT_SCOPE) -endfunction() - -# Worker function -function(ParseAndAddCatchTests_ParseFile SourceFile TestTarget) - # If SourceFile is an object library, do not scan it (as it is not a file). Exit without giving a warning about a missing file. - if(SourceFile MATCHES "\\\$") - ParseAndAddCatchTests_PrintDebugMessage("Detected OBJECT library: ${SourceFile} this will not be scanned for tests.") - return() - endif() - # According to CMake docs EXISTS behavior is well-defined only for full paths. - get_filename_component(SourceFile ${SourceFile} ABSOLUTE) - if(NOT EXISTS ${SourceFile}) - message(WARNING "Cannot find source file: ${SourceFile}") - return() - endif() - ParseAndAddCatchTests_PrintDebugMessage("parsing ${SourceFile}") - file(STRINGS ${SourceFile} Contents NEWLINE_CONSUME) - - # Remove block and fullline comments - ParseAndAddCatchTests_RemoveComments(Contents) - - # Find definition of test names - string(REGEX MATCHALL "[ \t]*(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)[ \t]*\\([^\)]+\\)+[ \t\n]*{+[ \t]*(//[^\n]*[Tt][Ii][Mm][Ee][Oo][Uu][Tt][ \t]*[0-9]+)*" Tests "${Contents}") - - if(PARSE_CATCH_TESTS_ADD_TO_CONFIGURE_DEPENDS AND Tests) - ParseAndAddCatchTests_PrintDebugMessage("Adding ${SourceFile} to CMAKE_CONFIGURE_DEPENDS property") - set_property( - DIRECTORY - APPEND - PROPERTY CMAKE_CONFIGURE_DEPENDS ${SourceFile} - ) - endif() - - foreach(TestName ${Tests}) - # Strip newlines - string(REGEX REPLACE "\\\\\n|\n" "" TestName "${TestName}") - - # Get test type and fixture if applicable - string(REGEX MATCH "(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)[ \t]*\\([^,^\"]*" TestTypeAndFixture "${TestName}") - string(REGEX MATCH "(CATCH_)?(TEST_CASE_METHOD|SCENARIO|TEST_CASE)" TestType "${TestTypeAndFixture}") - string(REGEX REPLACE "${TestType}\\([ \t]*" "" TestFixture "${TestTypeAndFixture}") - - # Get string parts of test definition - string(REGEX MATCHALL "\"+([^\\^\"]|\\\\\")+\"+" TestStrings "${TestName}") - - # Strip wrapping quotation marks - string(REGEX REPLACE "^\"(.*)\"$" "\\1" TestStrings "${TestStrings}") - string(REPLACE "\";\"" ";" TestStrings "${TestStrings}") - - # Validate that a test name and tags have been provided - list(LENGTH TestStrings TestStringsLength) - if(TestStringsLength GREATER 2 OR TestStringsLength LESS 1) - message(FATAL_ERROR "You must provide a valid test name and tags for all tests in ${SourceFile}") - endif() - - # Assign name and tags - list(GET TestStrings 0 Name) - if("${TestType}" STREQUAL "SCENARIO") - set(Name "Scenario: ${Name}") - endif() - if(PARSE_CATCH_TESTS_ADD_FIXTURE_IN_TEST_NAME AND TestFixture) - set(CTestName "${TestFixture}:${Name}") - else() - set(CTestName "${Name}") - endif() - if(PARSE_CATCH_TESTS_ADD_TARGET_IN_TEST_NAME) - set(CTestName "${TestTarget}:${CTestName}") - endif() - # add target to labels to enable running all tests added from this target - set(Labels ${TestTarget}) - if(TestStringsLength EQUAL 2) - list(GET TestStrings 1 Tags) - string(TOLOWER "${Tags}" Tags) - # remove target from labels if the test is hidden - if("${Tags}" MATCHES ".*\\[!?(hide|\\.)\\].*") - list(REMOVE_ITEM Labels ${TestTarget}) - endif() - string(REPLACE "]" ";" Tags "${Tags}") - string(REPLACE "[" "" Tags "${Tags}") - else() - # unset tags variable from previous loop - unset(Tags) - endif() - - list(APPEND Labels ${Tags}) - - set(HiddenTagFound OFF) - foreach(label ${Labels}) - string(REGEX MATCH "^!hide|^\\." result ${label}) - if(result) - set(HiddenTagFound ON) - break() - endif(result) - endforeach(label) - if(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS AND ${HiddenTagFound} AND ${CMAKE_VERSION} VERSION_LESS "3.9") - ParseAndAddCatchTests_PrintDebugMessage("Skipping test \"${CTestName}\" as it has [!hide], [.] or [.foo] label") - else() - ParseAndAddCatchTests_PrintDebugMessage("Adding test \"${CTestName}\"") - if(Labels) - ParseAndAddCatchTests_PrintDebugMessage("Setting labels to ${Labels}") - endif() - - # Escape commas in the test spec - string(REPLACE "," "\\," Name ${Name}) - - # Add the test and set its properties - add_test(NAME "\"${CTestName}\"" COMMAND ${OptionalCatchTestLauncher} $ ${Name} ${AdditionalCatchParameters}) - # Old CMake versions do not document VERSION_GREATER_EQUAL, so we use VERSION_GREATER with 3.8 instead - if(PARSE_CATCH_TESTS_NO_HIDDEN_TESTS AND ${HiddenTagFound} AND ${CMAKE_VERSION} VERSION_GREATER "3.8") - ParseAndAddCatchTests_PrintDebugMessage("Setting DISABLED test property") - set_tests_properties("\"${CTestName}\"" PROPERTIES DISABLED ON) - else() - set_tests_properties("\"${CTestName}\"" PROPERTIES FAIL_REGULAR_EXPRESSION "No tests ran" - LABELS "${Labels}") - endif() - set_property( - TARGET ${TestTarget} - APPEND - PROPERTY ParseAndAddCatchTests_TESTS "\"${CTestName}\"") - set_property( - SOURCE ${SourceFile} - APPEND - PROPERTY ParseAndAddCatchTests_TESTS "\"${CTestName}\"") - endif() - - - endforeach() -endfunction() - -# entry point -function(ParseAndAddCatchTests TestTarget) - ParseAndAddCatchTests_PrintDebugMessage("Started parsing ${TestTarget}") - get_target_property(SourceFiles ${TestTarget} SOURCES) - ParseAndAddCatchTests_PrintDebugMessage("Found the following sources: ${SourceFiles}") - foreach(SourceFile ${SourceFiles}) - ParseAndAddCatchTests_ParseFile(${SourceFile} ${TestTarget}) - endforeach() - ParseAndAddCatchTests_PrintDebugMessage("Finished parsing ${TestTarget}") -endfunction() diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.CMake-wiki b/extern/ycm/ycm-0.11.0/3rdparty/README.CMake-wiki deleted file mode 100644 index 12296f2a489..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.CMake-wiki +++ /dev/null @@ -1,6 +0,0 @@ -Some of the files in this folder and its subfolder come from the CMake wiki: - - FindOctave.cmake: https://cmake.org/Wiki/CMakeUserFindOctave - -Redistribution and use is allowed according to the terms of the 2-clause -BSD license. See accompanying file COPYING.CMake-wiki for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.CMakeRC b/extern/ycm/ycm-0.11.0/3rdparty/README.CMakeRC deleted file mode 100644 index 6643b6206ae..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.CMakeRC +++ /dev/null @@ -1,7 +0,0 @@ -Some of the files in this folder and its subfolder come from the CMakeRC git -repository (ref 966a1a717715f4e57fb1de00f589dea1001b5ae6): - - https://github.com/vector-of-bool/cmrc/ - -Redistribution and use is allowed according to the terms of the MIT License. -See accompanying file COPYING.CMakeRC for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.Catch2 b/extern/ycm/ycm-0.11.0/3rdparty/README.Catch2 deleted file mode 100644 index da8bdfef878..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.Catch2 +++ /dev/null @@ -1,7 +0,0 @@ -Some of the files in this folder and its subfolder come from the Catch2 git -repository (ref v2.8.0): - - https://github.com/catchorg/Catch2/ - -Redistribution and use is allowed according to the terms of the Boost Software -License. See accompanying file COPYING.Catch2 for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.Eigen b/extern/ycm/ycm-0.11.0/3rdparty/README.Eigen deleted file mode 100644 index 4d7c969cea3..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.Eigen +++ /dev/null @@ -1,7 +0,0 @@ -Some of the files in this folder and its subfolder come from the Eigen mercurial -repository (ref 844c47cfd8d309fe4db5cc21dd7368759d0a7a00): - - https://bitbucket.org/eigen/eigen - -Redistribution and use is allowed according to the terms of the 2-clause -BSD license. See accompanying file COPYING.Eigen for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.OVITO b/extern/ycm/ycm-0.11.0/3rdparty/README.OVITO deleted file mode 100644 index c69dcb65a9f..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.OVITO +++ /dev/null @@ -1,7 +0,0 @@ -Some of the files in this folder and its subfolder come from the OVITO git -repository (ref 8689fcb1fdd2e8dc748e76d54d3b77a3f87d384c): - - https://gitlab.com/stuko/ovito - -Redistribution and use is allowed according to the terms of the GPL3 license. -See accompanying file COPYING.OVITO for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.UseLATEX b/extern/ycm/ycm-0.11.0/3rdparty/README.UseLATEX deleted file mode 100644 index b79737581e2..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.UseLATEX +++ /dev/null @@ -1,7 +0,0 @@ -Some of the files in this folder and its subfolder come from the UseLATEX git -repository (ref 56d5753c842ab327fb3f297c6bcbd51622ffbe9c): - - https://gitlab.kitware.com/kmorel/UseLATEX/ - -Redistribution and use is allowed according to the terms of the 3-clause -BSD license. See accompanying file COPYING.UseLATEX for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.VTK b/extern/ycm/ycm-0.11.0/3rdparty/README.VTK deleted file mode 100644 index 2fc62e9e466..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.VTK +++ /dev/null @@ -1,7 +0,0 @@ -Some of the files in this folder and its subfolder come from the VTK git -repository (ref v8.1.1): - - https://gitlab.kitware.com/vtk/vtk/ - -Redistribution and use is allowed according to the terms of the 3-clause -BSD license. See accompanying file COPYING.VTK for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.qgv b/extern/ycm/ycm-0.11.0/3rdparty/README.qgv deleted file mode 100644 index 76165ceb4f6..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.qgv +++ /dev/null @@ -1,7 +0,0 @@ -Some of the files in this folder and its subfolder are modified versions of -files originally coming from the qgv git repository - - https://github.com/nbergont/qgv/ - -Redistribution and use is allowed according to the terms of the GPL3 license. -See accompanying file COPYING.qgv for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/README.qt-gstreamer b/extern/ycm/ycm-0.11.0/3rdparty/README.qt-gstreamer deleted file mode 100644 index 8a870c8411a..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/README.qt-gstreamer +++ /dev/null @@ -1,7 +0,0 @@ -Some of the files in this folder and its subfolder come from the qt-gstreamer -git repository (ref a0e95b202a72b6d9e48bd1949ab6811c0f3c91c3): - - https://github.com/GStreamer/qt-gstreamer - -Redistribution and use is allowed according to the terms of the 3-clause -BSD license. See accompanying file COPYING.qt-gstreamer for details. diff --git a/extern/ycm/ycm-0.11.0/3rdparty/UseLATEX.cmake b/extern/ycm/ycm-0.11.0/3rdparty/UseLATEX.cmake deleted file mode 100644 index 4e961f4c7c4..00000000000 --- a/extern/ycm/ycm-0.11.0/3rdparty/UseLATEX.cmake +++ /dev/null @@ -1,1967 +0,0 @@ -# File: UseLATEX.cmake -# CMAKE commands to actually use the LaTeX compiler -# Version: 2.4.9 -# Author: Kenneth Moreland -# -# Copyright 2004, 2015 Sandia Corporation. -# Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive -# license for use of this work by or on behalf of the U.S. Government. -# -# This software is released under the BSD 3-Clause License. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its -# contributors may be used to endorse or promote products derived from this -# software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# -# The following function is defined: -# -# add_latex_document( -# [BIBFILES ] -# [INPUTS ] -# [IMAGE_DIRS] -# [IMAGES] -# [CONFIGURE] -# [DEPENDS] -# [MULTIBIB_NEWCITES] -# [USE_BIBLATEX] -# [USE_INDEX] -# [INDEX_NAMES ] -# [USE_GLOSSARY] [USE_NOMENCL] -# [FORCE_PDF] [FORCE_DVI] [FORCE_HTML] -# [TARGET_NAME] -# [EXCLUDE_FROM_ALL] -# [EXCLUDE_FROM_DEFAULTS]) -# Adds targets that compile . The latex output is placed -# in LATEX_OUTPUT_PATH or CMAKE_CURRENT_BINARY_DIR if the former is -# not set. The latex program is picky about where files are located, -# so all input files are copied from the source directory to the -# output directory. This includes the target tex file, any tex file -# listed with the INPUTS option, the bibliography files listed with -# the BIBFILES option, and any .cls, .bst, .clo, .sty, .ist, and .fd -# files found in the current source directory. Images found in the -# IMAGE_DIRS directories or listed by IMAGES are also copied to the -# output directory and converted to an appropriate format if necessary. -# Any tex files also listed with the CONFIGURE option are also processed -# with the CMake CONFIGURE_FILE command (with the @ONLY flag). Any file -# listed in CONFIGURE but not the target tex file or listed with INPUTS -# has no effect. DEPENDS can be used to specify generated files that are -# needed to compile the latex target. -# -# The following targets are made. The name prefix is based off of the -# base name of the tex file unless TARGET_NAME is specified. If -# TARGET_NAME is specified, then that name is used for the targets. -# -# name_dvi: Makes .dvi -# name_pdf: Makes .pdf using pdflatex. -# name_safepdf: Makes .pdf using ps2pdf. If using the -# default program arguments, this will ensure all fonts -# are embedded and no lossy compression has been -# performed on images. -# name_ps: Makes .ps -# name_html: Makes .html -# name_auxclean: Deletes .aux and other auxiliary files. -# This is sometimes necessary if a LaTeX error occurs -# and writes a bad aux file. Unlike the regular clean -# target, it does not delete other input files, such as -# converted images, to save time on the rebuild. -# -# Unless the EXCLUDE_FROM_ALL option is given, one of these targets -# is added to the ALL target and built by default. Which target is -# determined by the LATEX_DEFAULT_BUILD CMake variable. See the -# documentation of that variable for more details. -# -# Unless the EXCLUDE_FROM_DEFAULTS option is given, all these targets -# are added as dependencies to targets named dvi, pdf, safepdf, ps, -# html, and auxclean, respectively. -# -# USE_BIBLATEX enables the use of biblatex/biber as an alternative to -# bibtex. Bibtex remains the default if USE_BIBLATEX is not -# specified. -# -# If the argument USE_INDEX is given, then commands to build an index -# are made. If the argument INDEX_NAMES is given, an index file is -# generated for each name in this list. See the LaTeX package multind -# for more information about how to generate multiple indices. -# -# If the argument USE_GLOSSARY is given, then commands to -# build a glossary are made. If the argument MULTIBIB_NEWCITES is -# given, then additional bibtex calls are added to the build to -# support the extra auxiliary files created with the \newcite command -# in the multibib package. -# -# History: -# -# 2.4.9 Use biblatex.cfg file if it exists and the USE_BIBLATEX option is ON. -# -# 2.4.8 Fix synctex issue with absolute paths not being converted. -# -# 2.4.7 Fix some issues with spaces in the path of the working directory where -# LaTeX is executed. -# -# 2.4.6 Fix parse issue with older versions of CMake. -# -# 2.4.5 Fix issues with files and paths containing spaces. -# -# 2.4.4 Improve error reporting message when LaTeX fails. -# -# When LaTeX fails, delete the output file, which is invalid. -# -# Add warnings for "missing characters." These usually mean that a -# non-ASCII character is in the document and will not be printed -# correctly. -# -# 2.4.3 Check for warnings from the natbib package. When using natbib, -# warnings for missing bibliography references look different. So -# far, natbib seems to be quiet unless something is important, so -# look for all natbib warnings. (We can change this later if -# necessary.) -# -# 2.4.2 Fix an issue where new versions of ImageMagick expect the order of -# options in command line execution of magick/convert. (See, for -# example, http://www.imagemagick.org/Usage/basics/#why.) -# -# 2.4.1 Add ability to dump LaTeX log file when using batch mode. Batch -# mode suppresses most output, often including error messages. To -# make sure critical error messages get displayed, show the full log -# on failures. -# -# 2.4.0 Remove "-r 600" from the default PDFTOPS_CONVERTER_FLAGS. The -r flag -# is available from the Poppler version of pdftops, but not the Xpdf -# version. -# -# Fix an issue with the flags for the different programs not being -# properly separated. -# -# Fix an issue on windows where the = character is not allowed for -# ps2pdf arguments. -# -# Change default arguments for latex and pdflatex commands. Makes the -# output more quiet and prints out the file/line where errors occur. -# (Thanks to Nikos Koukis.) -# -# After a LaTeX build, check the log file for warnings that are -# indicative of problems with the build. -# -# Remove support for latex2html. Instead, use the htlatex program. -# This is now part of TeX Live and most other distributions. It also -# behaves much more like the other LaTeX programs. Also fixed some -# nasty issues with the htlatex arguments. -# -# 2.3.2 Declare LaTeX input files as sources for targets so that they show -# up in IDEs like QtCreator. -# -# Fix issue where main tex files in subdirectories were creating -# invalid targets for building HTML. Just disable the HTML targets in -# this case. -# -# 2.3.1 Support use of magick command instead of convert command for -# ImageMagick 7. -# -# 2.3.0 Add USE_BIBLATEX option to support the biblatex package, which -# requires using the program biber as a replacement for bibtex -# (thanks to David Tracey). -# -# 2.2.1 Add STRINGS property to LATEX_DEFAULT_BUILD to make it easier to -# select the default build in the CMake GUI. -# -# 2.2.0 Add TARGET_NAME option. -# -# 2.1.1 Support for finding bmp, ppm, and other image files. -# -# 2.1.0 Fix an error where the pdf target and others were defined multiple -# times if UseLATEX.cmake was included multiple times. -# -# Added INDEX_NAMES option to support multiple indexes in a single -# document from the multind package (thanks to Dan Lipsa). -# -# 2.0.0 First major revision of UseLATEX.cmake updates to more recent features -# of CMake and some non-backward compatible changes. -# -# Changed all function and macro names to lower case. CMake's identifiers -# are case insensitive, but the convention moved from all upper case to -# all lower case somewhere around the release of CMake 2. (The original -# version of UseLATEX.cmake predates that.) -# -# Remove condition matching in if statements. They are no longer necessary -# and are even discouraged (because else clauses get confusing). -# -# Use "new" features available in CMake such as list and argument parsing. -# -# Remove some code that has been deprecated for a while. -# -# Mark variables for compiler and converter executables as advanced to -# match the more conventional CMake behavior. -# -# Changed how default builds are specified and add the ability to force -# a particular build. -# -# Made the base targets (pdf, dvi, etc.) global. add_latex_document -# always mangles its target names and these base targets depend on -# the targets with mangled names. -# -# 1.10.5 Fix for Window's convert check (thanks to Martin Baute). -# -# 1.10.4 Copy font files to binary directory for packages that come with -# their own fonts. -# -# 1.10.3 Check for Windows version of convert being used instead of -# ImageMagick's version (thanks to Martin Baute). -# -# 1.10.2 Use htlatex as a fallback when latex2html is not available (thanks -# to Tomasz Grzegurzko). -# -# 1.10.1 Make convert program mandatory only if actually used (thanks to -# Julien Schueller). -# -# 1.10.0 Added NO_DEFAULT and DEFAULT_PS options. -# Fixed issue with cleaning files for LaTeX documents originating in -# a subdirectory. -# -# 1.9.6 Fixed problem with LATEX_SMALL_IMAGES. -# Strengthened check to make sure the output directory does not contain -# the source files. -# -# 1.9.5 Add support for image types not directly supported by either latex -# or pdflatex. (Thanks to Jorge Gerardo Pena Pastor for SVG support.) -# -# 1.9.4 Fix issues with filenames containing multiple periods. -# -# 1.9.3 Hide some variables that are now cached but should not show up in -# the ccmake list of variables. -# -# 1.9.2 Changed MACRO declarations to FUNCTION declarations. The better -# FUNCTION scoping will hopefully avoid some common but subtle bugs. -# This implicitly increases the minimum CMake version to 4.6 (although -# I honestly only test it with the latest 4.8 version). -# -# Since we are updating the minimum CMake version, I'm going to start -# using the builtin LIST commands that are now available. -# -# Favor using pdftops from the Poppler package to convert from pdf to -# eps. It does a much better job than ImageMagick or ghostscript. -# -# 1.9.1 Fixed typo that caused the LATEX_SMALL_IMAGES option to fail to -# activate. -# -# 1.9.0 Add support for the multibib package (thanks to Antonio LaTorre). -# -# 1.8.2 Fix corner case when an argument name was also a variable containing -# the text of an argument. In this case, the CMake IF was matching -# the argument text with the contents of the variable with the same -# argument name. -# -# 1.8.1 Fix problem where ps2pdf was not getting the appropriate arguments. -# -# 1.8.0 Add support for synctex. -# -# 1.7.7 Support calling xindy when making glossaries. -# -# Improved make clean support. -# -# 1.7.6 Add support for the nomencl package (thanks to Myles English). -# -# 1.7.5 Fix issue with bibfiles being copied two different ways, which causes -# Problems with dependencies (thanks to Edwin van Leeuwen). -# -# 1.7.4 Added the DEFAULT_SAFEPDF option (thanks to Raymond Wan). -# -# Added warnings when image directories are not found (and were -# probably not given relative to the source directory). -# -# 1.7.3 Fix some issues with interactions between makeglossaries and bibtex -# (thanks to Mark de Wever). -# -# 1.7.2 Use ps2pdf to convert eps to pdf to get around the problem with -# ImageMagick dropping the bounding box (thanks to Lukasz Lis). -# -# 1.7.1 Fixed some dependency issues. -# -# 1.7.0 Added DEPENDS options (thanks to Theodore Papadopoulo). -# -# 1.6.1 Ported the makeglossaries command to CMake and embedded the port -# into UseLATEX.cmake. -# -# 1.6.0 Allow the use of the makeglossaries command. Thanks to Oystein -# S. Haaland for the patch. -# -# 1.5.0 Allow any type of file in the INPUTS lists, not just tex file -# (suggested by Eric Noulard). As a consequence, the ability to -# specify tex files without the .tex extension is removed. The removed -# function is of dubious value anyway. -# -# When copying input files, skip over any file that exists in the -# binary directory but does not exist in the source directory with the -# assumption that these files were added by some other mechanism. I -# find this useful when creating large documents with multiple -# chapters that I want to build separately (for speed) as I work on -# them. I use the same boilerplate as the starting point for all -# and just copy it with different configurations. This was what the -# separate ADD_LATEX_DOCUMENT method was supposed to originally be for. -# Since its external use is pretty much deprecated, I removed that -# documentation. -# -# 1.4.1 Copy .sty files along with the other class and package files. -# -# 1.4.0 Added a MANGLE_TARGET_NAMES option that will mangle the target names. -# -# Fixed problem with copying bib files that became apparent with -# CMake 2.4. -# -# 1.3.0 Added a LATEX_OUTPUT_PATH variable that allows you or the user to -# specify where the built latex documents to go. This is especially -# handy if you want to do in-source builds. -# -# Removed the ADD_LATEX_IMAGES macro and absorbed the functionality -# into ADD_LATEX_DOCUMENT. The old interface was always kind of -# clunky anyway since you had to specify the image directory in both -# places. It also made supporting LATEX_OUTPUT_PATH problematic. -# -# Added support for jpeg files. -# -# 1.2.0 Changed the configuration options yet again. Removed the NO_CONFIGURE -# Replaced it with a CONFIGURE option that lists input files for which -# configure should be run. -# -# The pdf target no longer depends on the dvi target. This allows you -# to build latex documents that require pdflatex. Also added an option -# to make the pdf target the default one. -# -# 1.1.1 Added the NO_CONFIGURE option. The @ character can be used when -# specifying table column separators. If two or more are used, then -# will incorrectly substitute them. -# -# 1.1.0 Added ability include multiple bib files. Added ability to do copy -# sub-tex files for multipart tex files. -# -# 1.0.0 If both ps and pdf type images exist, just copy the one that -# matches the current render mode. Replaced a bunch of STRING -# commands with GET_FILENAME_COMPONENT commands that were made to do -# the desired function. -# -# 0.4.0 First version posted to CMake Wiki. -# - -if(__USE_LATEX_INCLUDED) - return() -endif() -set(__USE_LATEX_INCLUDED TRUE) - -############################################################################# -# Find the location of myself while originally executing. If you do this -# inside of a macro, it will recode where the macro was invoked. -############################################################################# -set(LATEX_USE_LATEX_LOCATION ${CMAKE_CURRENT_LIST_FILE} - CACHE INTERNAL "Location of UseLATEX.cmake file." FORCE - ) - -############################################################################# -# Generic helper functions -############################################################################# - -include(CMakeParseArguments) - -function(latex_list_contains var value) - set(input_list ${ARGN}) - list(FIND input_list "${value}" index) - if(index GREATER -1) - set(${var} TRUE PARENT_SCOPE) - else() - set(${var} PARENT_SCOPE) - endif() -endfunction(latex_list_contains) - -# Match the contents of a file to a regular expression. -function(latex_file_match variable filename regexp default) - # The FILE STRINGS command would be a bit better, but I'm not totally sure - # the match will always be to a whole line, and I don't want to break things. - file(READ ${filename} file_contents) - string(REGEX MATCHALL "${regexp}" - match_result ${file_contents} - ) - if(match_result) - set(${variable} "${match_result}" PARENT_SCOPE) - else() - set(${variable} "${default}" PARENT_SCOPE) - endif() -endfunction(latex_file_match) - -# A version of GET_FILENAME_COMPONENT that treats extensions after the last -# period rather than the first. To the best of my knowledge, all filenames -# typically used by LaTeX, including image files, have small extensions -# after the last dot. -function(latex_get_filename_component varname filename type) - set(result) - if("${type}" STREQUAL "NAME_WE") - get_filename_component(name ${filename} NAME) - string(REGEX REPLACE "\\.[^.]*\$" "" result "${name}") - elseif("${type}" STREQUAL "EXT") - get_filename_component(name ${filename} NAME) - string(REGEX MATCH "\\.[^.]*\$" result "${name}") - else() - get_filename_component(result ${filename} ${type}) - endif() - set(${varname} "${result}" PARENT_SCOPE) -endfunction(latex_get_filename_component) - -############################################################################# -# Functions that perform processing during a LaTeX build. -############################################################################# -function(latex_execute_latex) - if(NOT LATEX_TARGET) - message(SEND_ERROR "Need to define LATEX_TARGET") - endif() - - if(NOT LATEX_WORKING_DIRECTORY) - message(SEND_ERROR "Need to define LATEX_WORKING_DIRECTORY") - endif() - - if(NOT LATEX_FULL_COMMAND) - message(SEND_ERROR "Need to define LATEX_FULL_COMMAND") - endif() - - if(NOT LATEX_OUTPUT_FILE) - message(SEND_ERROR "Need to define LATEX_OUTPUT_FILE") - endif() - - set(full_command_original "${LATEX_FULL_COMMAND}") - - # Chose the native method for parsing command arguments. Newer versions of - # CMake allow you to just use NATIVE_COMMAND. - if (CMAKE_VERSION VERSION_GREATER 3.8) - set(separate_arguments_mode NATIVE_COMMAND) - else() - if (WIN32) - set(separate_arguments_mode WINDOWS_COMMAND) - else() - set(separate_arguments_mode UNIX_COMMAND) - endif() - endif() - - # Preps variables for use in execute_process. - # Even though we expect LATEX_WORKING_DIRECTORY to have a single "argument," - # we also want to make sure that we strip out any escape characters that can - # foul up the WORKING_DIRECTORY argument. - separate_arguments(LATEX_FULL_COMMAND UNIX_COMMAND "${LATEX_FULL_COMMAND}") - separate_arguments(LATEX_WORKING_DIRECTORY_SEP UNIX_COMMAND "${LATEX_WORKING_DIRECTORY}") - - execute_process( - COMMAND ${LATEX_FULL_COMMAND} - WORKING_DIRECTORY "${LATEX_WORKING_DIRECTORY_SEP}" - RESULT_VARIABLE execute_result - ) - - if(NOT ${execute_result} EQUAL 0) - # LaTeX tends to write a file when a failure happens. Delete that file so - # that LaTeX will run again. - file(REMOVE "${LATEX_WORKING_DIRECTORY}/${LATEX_OUTPUT_FILE}") - - message("\n\nLaTeX command failed") - message("${full_command_original}") - message("Log output:") - file(READ "${LATEX_WORKING_DIRECTORY}/${LATEX_TARGET}.log" log_output) - message("${log_output}") - message(FATAL_ERROR - "Successfully executed LaTeX, but LaTeX returned an error.") - endif() -endfunction(latex_execute_latex) - -function(latex_makeglossaries) - # This is really a bare bones port of the makeglossaries perl script into - # CMake scripting. - message("**************************** In makeglossaries") - if(NOT LATEX_TARGET) - message(SEND_ERROR "Need to define LATEX_TARGET") - endif() - - set(aux_file ${LATEX_TARGET}.aux) - - if(NOT EXISTS ${aux_file}) - message(SEND_ERROR "${aux_file} does not exist. Run latex on your target file.") - endif() - - latex_file_match(newglossary_lines ${aux_file} - "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" - "@newglossary{main}{glg}{gls}{glo}" - ) - - latex_file_match(istfile_line ${aux_file} - "@istfilename[ \t]*{([^}]*)}" - "@istfilename{${LATEX_TARGET}.ist}" - ) - string(REGEX REPLACE "@istfilename[ \t]*{([^}]*)}" "\\1" - istfile ${istfile_line} - ) - - string(REGEX MATCH ".*\\.xdy" use_xindy "${istfile}") - if(use_xindy) - message("*************** Using xindy") - if(NOT XINDY_COMPILER) - message(SEND_ERROR "Need to define XINDY_COMPILER") - endif() - else() - message("*************** Using makeindex") - if(NOT MAKEINDEX_COMPILER) - message(SEND_ERROR "Need to define MAKEINDEX_COMPILER") - endif() - endif() - - foreach(newglossary ${newglossary_lines}) - string(REGEX REPLACE - "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" - "\\1" glossary_name ${newglossary} - ) - string(REGEX REPLACE - "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" - "${LATEX_TARGET}.\\2" glossary_log ${newglossary} - ) - string(REGEX REPLACE - "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" - "${LATEX_TARGET}.\\3" glossary_out ${newglossary} - ) - string(REGEX REPLACE - "@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}" - "${LATEX_TARGET}.\\4" glossary_in ${newglossary} - ) - - if(use_xindy) - latex_file_match(xdylanguage_line ${aux_file} - "@xdylanguage[ \t]*{${glossary_name}}{([^}]*)}" - "@xdylanguage{${glossary_name}}{english}" - ) - string(REGEX REPLACE - "@xdylanguage[ \t]*{${glossary_name}}{([^}]*)}" - "\\1" - language - ${xdylanguage_line} - ) - # What crazy person makes a LaTeX index generator that uses different - # identifiers for language than babel (or at least does not support - # the old ones)? - if(${language} STREQUAL "frenchb") - set(language "french") - elseif(${language} MATCHES "^n?germanb?$") - set(language "german") - elseif(${language} STREQUAL "magyar") - set(language "hungarian") - elseif(${language} STREQUAL "lsorbian") - set(language "lower-sorbian") - elseif(${language} STREQUAL "norsk") - set(language "norwegian") - elseif(${language} STREQUAL "portuges") - set(language "portuguese") - elseif(${language} STREQUAL "russianb") - set(language "russian") - elseif(${language} STREQUAL "slovene") - set(language "slovenian") - elseif(${language} STREQUAL "ukraineb") - set(language "ukrainian") - elseif(${language} STREQUAL "usorbian") - set(language "upper-sorbian") - endif() - if(language) - set(language_flags "-L ${language}") - else() - set(language_flags "") - endif() - - latex_file_match(codepage_line ${aux_file} - "@gls@codepage[ \t]*{${glossary_name}}{([^}]*)}" - "@gls@codepage{${glossary_name}}{utf}" - ) - string(REGEX REPLACE - "@gls@codepage[ \t]*{${glossary_name}}{([^}]*)}" - "\\1" - codepage - ${codepage_line} - ) - if(codepage) - set(codepage_flags "-C ${codepage}") - else() - # Ideally, we would check that the language is compatible with the - # default codepage, but I'm hoping that distributions will be smart - # enough to specify their own codepage. I know, it's asking a lot. - set(codepage_flags "") - endif() - - message("${XINDY_COMPILER} ${MAKEGLOSSARIES_COMPILER_ARGS} ${language_flags} ${codepage_flags} -I xindy -M ${glossary_name} -t ${glossary_log} -o ${glossary_out} ${glossary_in}" - ) - exec_program(${XINDY_COMPILER} - ARGS ${MAKEGLOSSARIES_COMPILER_ARGS} - ${language_flags} - ${codepage_flags} - -I xindy - -M ${glossary_name} - -t ${glossary_log} - -o ${glossary_out} - ${glossary_in} - OUTPUT_VARIABLE xindy_output - ) - message("${xindy_output}") - - # So, it is possible (perhaps common?) for aux files to specify a - # language and codepage that are incompatible with each other. Check - # for that condition, and if it happens run again with the default - # codepage. - if("${xindy_output}" MATCHES "^Cannot locate xindy module for language (.+) in codepage (.+)\\.$") - message("*************** Retrying xindy with default codepage.") - exec_program(${XINDY_COMPILER} - ARGS ${MAKEGLOSSARIES_COMPILER_ARGS} - ${language_flags} - -I xindy - -M ${glossary_name} - -t ${glossary_log} - -o ${glossary_out} - ${glossary_in} - ) - endif() - - else() - message("${MAKEINDEX_COMPILER} ${MAKEGLOSSARIES_COMPILER_ARGS} -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}") - exec_program(${MAKEINDEX_COMPILER} ARGS ${MAKEGLOSSARIES_COMPILER_ARGS} - -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in} - ) - endif() - - endforeach(newglossary) -endfunction(latex_makeglossaries) - -function(latex_makenomenclature) - message("**************************** In makenomenclature") - if(NOT LATEX_TARGET) - message(SEND_ERROR "Need to define LATEX_TARGET") - endif() - - if(NOT MAKEINDEX_COMPILER) - message(SEND_ERROR "Need to define MAKEINDEX_COMPILER") - endif() - - set(nomencl_out ${LATEX_TARGET}.nls) - set(nomencl_in ${LATEX_TARGET}.nlo) - - exec_program(${MAKEINDEX_COMPILER} ARGS ${MAKENOMENCLATURE_COMPILER_ARGS} - ${nomencl_in} -s "nomencl.ist" -o ${nomencl_out} - ) -endfunction(latex_makenomenclature) - -function(latex_correct_synctex) - message("**************************** In correct SyncTeX") - if(NOT LATEX_TARGET) - message(SEND_ERROR "Need to define LATEX_TARGET") - endif() - - if(NOT GZIP) - message(SEND_ERROR "Need to define GZIP") - endif() - - if(NOT LATEX_SOURCE_DIRECTORY) - message(SEND_ERROR "Need to define LATEX_SOURCE_DIRECTORY") - endif() - - if(NOT LATEX_BINARY_DIRECTORY) - message(SEND_ERROR "Need to define LATEX_BINARY_DIRECTORY") - endif() - message("${LATEX_BINARY_DIRECTORY}") - message("${LATEX_SOURCE_DIRECTORY}") - - set(synctex_file ${LATEX_BINARY_DIRECTORY}/${LATEX_TARGET}.synctex) - set(synctex_file_gz ${synctex_file}.gz) - - if(EXISTS ${synctex_file_gz}) - - message("Making backup of synctex file.") - configure_file(${synctex_file_gz} ${synctex_file}.bak.gz COPYONLY) - - message("Uncompressing synctex file.") - exec_program(${GZIP} - ARGS --decompress ${synctex_file_gz} - ) - - message("Reading synctex file.") - file(READ ${synctex_file} synctex_data) - - message("Replacing output paths with input paths.") - foreach(extension tex cls bst clo sty ist fd) - # Relative paths - string(REGEX REPLACE - "(Input:[0-9]+:)([^/\n][^\n]\\.${extension}*)" - "\\1${LATEX_SOURCE_DIRECTORY}/\\2" - synctex_data - "${synctex_data}" - ) - - # Absolute paths - string(REGEX REPLACE - "(Input:[0-9]+:)${LATEX_BINARY_DIRECTORY}([^\n]*\\.${extension})" - "\\1${LATEX_SOURCE_DIRECTORY}\\2" - synctex_data - "${synctex_data}" - ) - endforeach(extension) - - message("Writing synctex file.") - file(WRITE ${synctex_file} "${synctex_data}") - - message("Compressing synctex file.") - exec_program(${GZIP} - ARGS ${synctex_file} - ) - - else() - - message(SEND_ERROR "File ${synctex_file_gz} not found. Perhaps synctex is not supported by your LaTeX compiler.") - - endif() - -endfunction(latex_correct_synctex) - -function(latex_check_important_warnings) - set(log_file ${LATEX_TARGET}.log) - - message("\nChecking ${log_file} for important warnings.") - if(NOT LATEX_TARGET) - message(SEND_ERROR "Need to define LATEX_TARGET") - endif() - - if(NOT EXISTS ${log_file}) - message("Could not find log file: ${log_file}") - return() - endif() - - set(found_error) - - file(READ ${log_file} log) - - # Check for undefined references - string(REGEX MATCHALL - "\n[^\n]*Reference[^\n]*undefined[^\n]*" - reference_warnings - "${log}") - if(reference_warnings) - set(found_error TRUE) - message("\nFound missing reference warnings.") - foreach(warning ${reference_warnings}) - string(STRIP "${warning}" warning_no_newline) - message("${warning_no_newline}") - endforeach(warning) - endif() - - # Check for natbib warnings - string(REGEX MATCHALL - "\nPackage natbib Warning:[^\n]*" - natbib_warnings - "${log}") - if(natbib_warnings) - set(found_error TRUE) - message("\nFound natbib package warnings.") - foreach(warning ${natbib_warnings}) - string(STRIP "${warning}" warning_no_newline) - message("${warning_no_newline}") - endforeach(warning) - endif() - - # Check for overfull - string(REGEX MATCHALL - "\nOverfull[^\n]*" - overfull_warnings - "${log}") - if(overfull_warnings) - set(found_error TRUE) - message("\nFound overfull warnings. These are indicative of layout errors.") - foreach(warning ${overfull_warnings}) - string(STRIP "${warning}" warning_no_newline) - message("${warning_no_newline}") - endforeach(warning) - endif() - - # Check for invalid characters - string(REGEX MATCHALL - "\nMissing character:[^\n]*" - invalid_character_warnings - "${log}") - if(invalid_character_warnings) - set(found_error TRUE) - message("\nFound invalid character warnings. These characters are likely not printed correctly.") - foreach(warning ${invalid_character_warnings}) - string(STRIP "${warning}" warning_no_newline) - message("${warning_no_newline}") - endforeach(warning) - endif() - - if(found_error) - latex_get_filename_component(log_file_path ${log_file} ABSOLUTE) - message("\nConsult ${log_file_path} for more information on LaTeX build.") - else() - message("No known important warnings found.") - endif(found_error) -endfunction(latex_check_important_warnings) - -############################################################################# -# Helper functions for establishing LaTeX build. -############################################################################# - -function(latex_needit VAR NAME) - if(NOT ${VAR}) - message(SEND_ERROR "I need the ${NAME} command.") - endif() -endfunction(latex_needit) - -function(latex_wantit VAR NAME) - if(NOT ${VAR}) - message(STATUS "I could not find the ${NAME} command.") - endif() -endfunction(latex_wantit) - -function(latex_setup_variables) - set(LATEX_OUTPUT_PATH "${LATEX_OUTPUT_PATH}" - CACHE PATH "If non empty, specifies the location to place LaTeX output." - ) - - find_package(LATEX) - - find_program(XINDY_COMPILER - NAME xindy - PATHS ${MIKTEX_BINARY_PATH} /usr/bin - ) - - find_package(UnixCommands) - - find_program(PDFTOPS_CONVERTER - NAMES pdftops - DOC "The pdf to ps converter program from the Poppler package." - ) - - find_program(HTLATEX_COMPILER - NAMES htlatex - PATHS ${MIKTEX_BINARY_PATH} - /usr/bin - ) - - mark_as_advanced( - LATEX_COMPILER - PDFLATEX_COMPILER - BIBTEX_COMPILER - BIBER_COMPILER - MAKEINDEX_COMPILER - XINDY_COMPILER - DVIPS_CONVERTER - PS2PDF_CONVERTER - PDFTOPS_CONVERTER - LATEX2HTML_CONVERTER - HTLATEX_COMPILER - ) - - latex_needit(LATEX_COMPILER latex) - latex_wantit(PDFLATEX_COMPILER pdflatex) - latex_wantit(HTLATEX_COMPILER htlatex) - latex_needit(BIBTEX_COMPILER bibtex) - latex_wantit(BIBER_COMPILER biber) - latex_needit(MAKEINDEX_COMPILER makeindex) - latex_wantit(DVIPS_CONVERTER dvips) - latex_wantit(PS2PDF_CONVERTER ps2pdf) - latex_wantit(PDFTOPS_CONVERTER pdftops) - - set(LATEX_COMPILER_FLAGS "-interaction=batchmode -file-line-error" - CACHE STRING "Flags passed to latex.") - set(PDFLATEX_COMPILER_FLAGS ${LATEX_COMPILER_FLAGS} - CACHE STRING "Flags passed to pdflatex.") - set(HTLATEX_COMPILER_TEX4HT_FLAGS "html" - CACHE STRING "Options for the tex4ht.sty and *.4ht style files.") - set(HTLATEX_COMPILER_TEX4HT_POSTPROCESSOR_FLAGS "" - CACHE STRING "Options for the text4ht postprocessor.") - set(HTLATEX_COMPILER_T4HT_POSTPROCESSOR_FLAGS "" - CACHE STRING "Options for the t4ht postprocessor.") - set(HTLATEX_COMPILER_LATEX_FLAGS ${LATEX_COMPILER_FLAGS} - CACHE STRING "Flags passed from htlatex to the LaTeX compiler.") - set(LATEX_SYNCTEX_FLAGS "-synctex=1" - CACHE STRING "latex/pdflatex flags used to create synctex file.") - set(BIBTEX_COMPILER_FLAGS "" - CACHE STRING "Flags passed to bibtex.") - set(BIBER_COMPILER_FLAGS "" - CACHE STRING "Flags passed to biber.") - set(MAKEINDEX_COMPILER_FLAGS "" - CACHE STRING "Flags passed to makeindex.") - set(MAKEGLOSSARIES_COMPILER_FLAGS "" - CACHE STRING "Flags passed to makeglossaries.") - set(MAKENOMENCLATURE_COMPILER_FLAGS "" - CACHE STRING "Flags passed to makenomenclature.") - set(DVIPS_CONVERTER_FLAGS "-Ppdf -G0 -t letter" - CACHE STRING "Flags passed to dvips.") - if(NOT WIN32) - set(PS2PDF_CONVERTER_FLAGS "-dMaxSubsetPct=100 -dCompatibilityLevel=1.3 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode" - CACHE STRING "Flags passed to ps2pdf.") - else() - # Most windows ports of ghostscript utilities use .bat files for ps2pdf - # commands. bat scripts interpret "=" as a special character and separate - # those arguments. To get around this, the ghostscript utilities also - # support using "#" in place of "=". - set(PS2PDF_CONVERTER_FLAGS "-dMaxSubsetPct#100 -dCompatibilityLevel#1.3 -dSubsetFonts#true -dEmbedAllFonts#true -dAutoFilterColorImages#false -dAutoFilterGrayImages#false -dColorImageFilter#/FlateEncode -dGrayImageFilter#/FlateEncode -dMonoImageFilter#/FlateEncode" - CACHE STRING "Flags passed to ps2pdf.") - endif() - set(PDFTOPS_CONVERTER_FLAGS "" - CACHE STRING "Flags passed to pdftops.") - mark_as_advanced( - LATEX_COMPILER_FLAGS - PDFLATEX_COMPILER_FLAGS - HTLATEX_COMPILER_TEX4HT_FLAGS - HTLATEX_COMPILER_TEX4HT_POSTPROCESSOR_FLAGS - HTLATEX_COMPILER_T4HT_POSTPROCESSOR_FLAGS - HTLATEX_COMPILER_LATEX_FLAGS - LATEX_SYNCTEX_FLAGS - BIBTEX_COMPILER_FLAGS - BIBER_COMPILER_FLAGS - MAKEINDEX_COMPILER_FLAGS - MAKEGLOSSARIES_COMPILER_FLAGS - MAKENOMENCLATURE_COMPILER_FLAGS - DVIPS_CONVERTER_FLAGS - PS2PDF_CONVERTER_FLAGS - PDFTOPS_CONVERTER_FLAGS - ) - - # Because it is easier to type, the flags variables are entered as - # space-separated strings much like you would in a shell. However, when - # using a CMake command to execute a program, it works better to hold the - # arguments in semicolon-separated lists (otherwise the whole string will - # be interpreted as a single argument). Use the separate_arguments to - # convert the space-separated strings to semicolon-separated lists. - separate_arguments(LATEX_COMPILER_FLAGS) - separate_arguments(PDFLATEX_COMPILER_FLAGS) - separate_arguments(HTLATEX_COMPILER_LATEX_FLAGS) - separate_arguments(LATEX_SYNCTEX_FLAGS) - separate_arguments(BIBTEX_COMPILER_FLAGS) - separate_arguments(BIBER_COMPILER_FLAGS) - separate_arguments(MAKEINDEX_COMPILER_FLAGS) - separate_arguments(MAKEGLOSSARIES_COMPILER_FLAGS) - separate_arguments(MAKENOMENCLATURE_COMPILER_FLAGS) - separate_arguments(DVIPS_CONVERTER_FLAGS) - separate_arguments(PS2PDF_CONVERTER_FLAGS) - separate_arguments(PDFTOPS_CONVERTER_FLAGS) - - # Not quite done. When you call separate_arguments on a cache variable, - # the result is written to a local variable. That local variable goes - # away when this function returns (which is before any of them are used). - # So, copy these variables with local scope to cache variables with - # global scope. - set(LATEX_COMPILER_ARGS "${LATEX_COMPILER_FLAGS}" CACHE INTERNAL "") - set(PDFLATEX_COMPILER_ARGS "${PDFLATEX_COMPILER_FLAGS}" CACHE INTERNAL "") - set(HTLATEX_COMPILER_ARGS "${HTLATEX_COMPILER_LATEX_FLAGS}" CACHE INTERNAL "") - set(LATEX_SYNCTEX_ARGS "${LATEX_SYNCTEX_FLAGS}" CACHE INTERNAL "") - set(BIBTEX_COMPILER_ARGS "${BIBTEX_COMPILER_FLAGS}" CACHE INTERNAL "") - set(BIBER_COMPILER_ARGS "${BIBER_COMPILER_FLAGS}" CACHE INTERNAL "") - set(MAKEINDEX_COMPILER_ARGS "${MAKEINDEX_COMPILER_FLAGS}" CACHE INTERNAL "") - set(MAKEGLOSSARIES_COMPILER_ARGS "${MAKEGLOSSARIES_COMPILER_FLAGS}" CACHE INTERNAL "") - set(MAKENOMENCLATURE_COMPILER_ARGS "${MAKENOMENCLATURE_COMPILER_FLAGS}" CACHE INTERNAL "") - set(DVIPS_CONVERTER_ARGS "${DVIPS_CONVERTER_FLAGS}" CACHE INTERNAL "") - set(PS2PDF_CONVERTER_ARGS "${PS2PDF_CONVERTER_FLAGS}" CACHE INTERNAL "") - set(PDFTOPS_CONVERTER_ARGS "${PDFTOPS_CONVERTER_FLAGS}" CACHE INTERNAL "") - - find_program(IMAGEMAGICK_CONVERT - NAMES magick convert - DOC "The convert program that comes with ImageMagick (available at http://www.imagemagick.org)." - ) - mark_as_advanced(IMAGEMAGICK_CONVERT) - - if(DEFINED ENV{LATEX_DEFAULT_BUILD}) - set(default_build $ENV{LATEX_DEFAULT_BUILD}) - else() - set(default_build pdf) - endif() - - set(LATEX_DEFAULT_BUILD "${default_build}" CACHE STRING - "Choose the default type of LaTeX build. Valid options are pdf, dvi, ps, safepdf, html" - ) - set_property(CACHE LATEX_DEFAULT_BUILD - PROPERTY STRINGS pdf dvi ps safepdf html - ) - - option(LATEX_USE_SYNCTEX - "If on, have LaTeX generate a synctex file, which WYSIWYG editors can use to correlate output files like dvi and pdf with the lines of LaTeX source that generates them. In addition to adding the LATEX_SYNCTEX_FLAGS to the command line, this option also adds build commands that \"corrects\" the resulting synctex file to point to the original LaTeX files rather than those generated by UseLATEX.cmake." - OFF - ) - - option(LATEX_SMALL_IMAGES - "If on, the raster images will be converted to 1/6 the original size. This is because papers usually require 600 dpi images whereas most monitors only require at most 96 dpi. Thus, smaller images make smaller files for web distribution and can make it faster to read dvi files." - OFF) - if(LATEX_SMALL_IMAGES) - set(LATEX_RASTER_SCALE 16 PARENT_SCOPE) - set(LATEX_OPPOSITE_RASTER_SCALE 100 PARENT_SCOPE) - else() - set(LATEX_RASTER_SCALE 100 PARENT_SCOPE) - set(LATEX_OPPOSITE_RASTER_SCALE 16 PARENT_SCOPE) - endif() - - # Just holds extensions for known image types. They should all be lower case. - # For historical reasons, these are all declared in the global scope. - set(LATEX_DVI_VECTOR_IMAGE_EXTENSIONS .eps CACHE INTERNAL "") - set(LATEX_DVI_RASTER_IMAGE_EXTENSIONS CACHE INTERNAL "") - set(LATEX_DVI_IMAGE_EXTENSIONS - ${LATEX_DVI_VECTOR_IMAGE_EXTENSIONS} - ${LATEX_DVI_RASTER_IMAGE_EXTENSIONS} - CACHE INTERNAL "" - ) - - set(LATEX_PDF_VECTOR_IMAGE_EXTENSIONS .pdf CACHE INTERNAL "") - set(LATEX_PDF_RASTER_IMAGE_EXTENSIONS .jpeg .jpg .png CACHE INTERNAL "") - set(LATEX_PDF_IMAGE_EXTENSIONS - ${LATEX_PDF_VECTOR_IMAGE_EXTENSIONS} - ${LATEX_PDF_RASTER_IMAGE_EXTENSIONS} - CACHE INTERNAL "" - ) - - set(LATEX_OTHER_VECTOR_IMAGE_EXTENSIONS .ai .dot .svg CACHE INTERNAL "") - set(LATEX_OTHER_RASTER_IMAGE_EXTENSIONS - .bmp .bmp2 .bmp3 .dcm .dcx .ico .gif .pict .ppm .tif .tiff - CACHE INTERNAL "") - set(LATEX_OTHER_IMAGE_EXTENSIONS - ${LATEX_OTHER_VECTOR_IMAGE_EXTENSIONS} - ${LATEX_OTHER_RASTER_IMAGE_EXTENSIONS} - CACHE INTERNAL "" - ) - - set(LATEX_VECTOR_IMAGE_EXTENSIONS - ${LATEX_DVI_VECTOR_IMAGE_EXTENSIONS} - ${LATEX_PDF_VECTOR_IMAGE_EXTENSIONS} - ${LATEX_OTHER_VECTOR_IMAGE_EXTENSIONS} - CACHE INTERNAL "" - ) - set(LATEX_RASTER_IMAGE_EXTENSIONS - ${LATEX_DVI_RASTER_IMAGE_EXTENSIONS} - ${LATEX_PDF_RASTER_IMAGE_EXTENSIONS} - ${LATEX_OTHER_RASTER_IMAGE_EXTENSIONS} - CACHE INTERNAL "" - ) - set(LATEX_IMAGE_EXTENSIONS - ${LATEX_DVI_IMAGE_EXTENSIONS} - ${LATEX_PDF_IMAGE_EXTENSIONS} - ${LATEX_OTHER_IMAGE_EXTENSIONS} - CACHE INTERNAL "" - ) -endfunction(latex_setup_variables) - -function(latex_setup_targets) - if(NOT TARGET pdf) - add_custom_target(pdf) - endif() - if(NOT TARGET dvi) - add_custom_target(dvi) - endif() - if(NOT TARGET ps) - add_custom_target(ps) - endif() - if(NOT TARGET safepdf) - add_custom_target(safepdf) - endif() - if(NOT TARGET html) - add_custom_target(html) - endif() - if(NOT TARGET auxclean) - add_custom_target(auxclean) - endif() -endfunction(latex_setup_targets) - -function(latex_get_output_path var) - set(latex_output_path) - if(LATEX_OUTPUT_PATH) - get_filename_component( - LATEX_OUTPUT_PATH_FULL "${LATEX_OUTPUT_PATH}" ABSOLUTE - ) - if("${LATEX_OUTPUT_PATH_FULL}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") - message(SEND_ERROR "You cannot set LATEX_OUTPUT_PATH to the same directory that contains LaTeX input files.") - else() - set(latex_output_path "${LATEX_OUTPUT_PATH_FULL}") - endif() - else() - if("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") - message(SEND_ERROR "LaTeX files must be built out of source or you must set LATEX_OUTPUT_PATH.") - else() - set(latex_output_path "${CMAKE_CURRENT_BINARY_DIR}") - endif() - endif() - set(${var} ${latex_output_path} PARENT_SCOPE) -endfunction(latex_get_output_path) - -function(latex_add_convert_command - output_path - input_path - output_extension - input_extension - flags - ) - set(require_imagemagick_convert TRUE) - set(convert_flags "") - if(${input_extension} STREQUAL ".eps" AND ${output_extension} STREQUAL ".pdf") - # ImageMagick has broken eps to pdf conversion - # use ps2pdf instead - if(PS2PDF_CONVERTER) - set(require_imagemagick_convert FALSE) - set(converter ${PS2PDF_CONVERTER}) - set(convert_flags -dEPSCrop ${PS2PDF_CONVERTER_ARGS}) - else() - message(SEND_ERROR "Using postscript files with pdflatex requires ps2pdf for conversion.") - endif() - elseif(${input_extension} STREQUAL ".pdf" AND ${output_extension} STREQUAL ".eps") - # ImageMagick can also be sketchy on pdf to eps conversion. Not good with - # color spaces and tends to unnecessarily rasterize. - # use pdftops instead - if(PDFTOPS_CONVERTER) - set(require_imagemagick_convert FALSE) - set(converter ${PDFTOPS_CONVERTER}) - set(convert_flags -eps ${PDFTOPS_CONVERTER_ARGS}) - else() - message(STATUS "Consider getting pdftops from Poppler to convert PDF images to EPS images.") - set(convert_flags ${flags}) - endif() - else() - set(convert_flags ${flags}) - endif() - - if(require_imagemagick_convert) - if(IMAGEMAGICK_CONVERT) - string(TOLOWER ${IMAGEMAGICK_CONVERT} IMAGEMAGICK_CONVERT_LOWERCASE) - if(${IMAGEMAGICK_CONVERT_LOWERCASE} MATCHES "system32[/\\\\]convert\\.exe") - message(SEND_ERROR "IMAGEMAGICK_CONVERT set to Window's convert.exe for changing file systems rather than ImageMagick's convert for changing image formats. Please make sure ImageMagick is installed (available at http://www.imagemagick.org). If you have a recent version of ImageMagick (7.0 or higher), use the magick program instead of convert for IMAGEMAGICK_CONVERT.") - else() - set(converter ${IMAGEMAGICK_CONVERT}) - # ImageMagick requires a special order of arguments where resize and - # arguments of that nature must be placed after the input image path. - add_custom_command(OUTPUT ${output_path} - COMMAND ${converter} - ARGS ${input_path} ${convert_flags} ${output_path} - DEPENDS ${input_path} - ) - endif() - else() - message(SEND_ERROR "Could not find convert program. Please download ImageMagick from http://www.imagemagick.org and install.") - endif() - else() # Not ImageMagick convert - add_custom_command(OUTPUT ${output_path} - COMMAND ${converter} - ARGS ${convert_flags} ${input_path} ${output_path} - DEPENDS ${input_path} - ) - endif() -endfunction(latex_add_convert_command) - -# Makes custom commands to convert a file to a particular type. -function(latex_convert_image - output_files_var - input_file - output_extension - convert_flags - output_extensions - other_files - ) - set(output_file_list) - set(input_dir ${CMAKE_CURRENT_SOURCE_DIR}) - latex_get_output_path(output_dir) - - latex_get_filename_component(extension "${input_file}" EXT) - - # Check input filename for potential problems with LaTeX. - latex_get_filename_component(name "${input_file}" NAME_WE) - set(suggested_name "${name}") - if(suggested_name MATCHES ".*\\..*") - string(REPLACE "." "-" suggested_name "${suggested_name}") - endif() - if(suggested_name MATCHES ".* .*") - string(REPLACE " " "-" suggested_name "${suggested_name}") - endif() - if(NOT suggested_name STREQUAL name) - message(WARNING "Some LaTeX distributions have problems with image file names with multiple extensions or spaces. Consider changing ${name}${extension} to something like ${suggested_name}${extension}.") - endif() - - string(REGEX REPLACE "\\.[^.]*\$" ${output_extension} output_file - "${input_file}") - - latex_list_contains(is_type ${extension} ${output_extensions}) - if(is_type) - if(convert_flags) - latex_add_convert_command(${output_dir}/${output_file} - ${input_dir}/${input_file} ${output_extension} ${extension} - "${convert_flags}") - set(output_file_list ${output_dir}/${output_file}) - else() - # As a shortcut, we can just copy the file. - add_custom_command(OUTPUT ${output_dir}/${input_file} - COMMAND ${CMAKE_COMMAND} - ARGS -E copy ${input_dir}/${input_file} ${output_dir}/${input_file} - DEPENDS ${input_dir}/${input_file} - ) - set(output_file_list ${output_dir}/${input_file}) - endif() - else() - set(do_convert TRUE) - # Check to see if there is another input file of the appropriate type. - foreach(valid_extension ${output_extensions}) - string(REGEX REPLACE "\\.[^.]*\$" ${output_extension} try_file - "${input_file}") - latex_list_contains(has_native_file "${try_file}" ${other_files}) - if(has_native_file) - set(do_convert FALSE) - endif() - endforeach(valid_extension) - - # If we still need to convert, do it. - if(do_convert) - latex_add_convert_command(${output_dir}/${output_file} - ${input_dir}/${input_file} ${output_extension} ${extension} - "${convert_flags}") - set(output_file_list ${output_dir}/${output_file}) - endif() - endif() - - set(${output_files_var} ${output_file_list} PARENT_SCOPE) -endfunction(latex_convert_image) - -# Adds custom commands to process the given files for dvi and pdf builds. -# Adds the output files to the given variables (does not replace). -function(latex_process_images dvi_outputs_var pdf_outputs_var) - latex_get_output_path(output_dir) - set(dvi_outputs) - set(pdf_outputs) - foreach(file ${ARGN}) - if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${file}") - latex_get_filename_component(extension "${file}" EXT) - set(convert_flags) - - # Check to see if we need to downsample the image. - latex_list_contains(is_raster "${extension}" - ${LATEX_RASTER_IMAGE_EXTENSIONS}) - if(LATEX_SMALL_IMAGES) - if(is_raster) - set(convert_flags -resize ${LATEX_RASTER_SCALE}%) - endif() - endif() - - # Make sure the output directory exists. - latex_get_filename_component(path "${output_dir}/${file}" PATH) - make_directory("${path}") - - # Do conversions for dvi. - latex_convert_image(output_files "${file}" .eps "${convert_flags}" - "${LATEX_DVI_IMAGE_EXTENSIONS}" "${ARGN}") - list(APPEND dvi_outputs ${output_files}) - - # Do conversions for pdf. - if(is_raster) - latex_convert_image(output_files "${file}" .png "${convert_flags}" - "${LATEX_PDF_IMAGE_EXTENSIONS}" "${ARGN}") - list(APPEND pdf_outputs ${output_files}) - else() - latex_convert_image(output_files "${file}" .pdf "${convert_flags}" - "${LATEX_PDF_IMAGE_EXTENSIONS}" "${ARGN}") - list(APPEND pdf_outputs ${output_files}) - endif() - else() - message(WARNING "Could not find file ${CMAKE_CURRENT_SOURCE_DIR}/${file}. Are you sure you gave relative paths to IMAGES?") - endif() - endforeach(file) - - set(${dvi_outputs_var} ${dvi_outputs} PARENT_SCOPE) - set(${pdf_outputs_var} ${pdf_outputs} PARENT_SCOPE) -endfunction(latex_process_images) - -function(latex_copy_globbed_files pattern dest) - file(GLOB file_list ${pattern}) - foreach(in_file ${file_list}) - latex_get_filename_component(out_file ${in_file} NAME) - configure_file(${in_file} ${dest}/${out_file} COPYONLY) - endforeach(in_file) -endfunction(latex_copy_globbed_files) - -function(latex_copy_input_file file) - latex_get_output_path(output_dir) - - if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}) - latex_get_filename_component(path ${file} PATH) - file(MAKE_DIRECTORY ${output_dir}/${path}) - - latex_list_contains(use_config ${file} ${LATEX_CONFIGURE}) - if(use_config) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${file} - ${output_dir}/${file} - @ONLY - ) - add_custom_command(OUTPUT ${output_dir}/${file} - COMMAND ${CMAKE_COMMAND} - ARGS ${CMAKE_BINARY_DIR} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} - ) - else() - add_custom_command(OUTPUT ${output_dir}/${file} - COMMAND ${CMAKE_COMMAND} - ARGS -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${file} ${output_dir}/${file} - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} - ) - endif() - else() - if(EXISTS ${output_dir}/${file}) - # Special case: output exists but input does not. Assume that it was - # created elsewhere and skip the input file copy. - else() - message("Could not find input file ${CMAKE_CURRENT_SOURCE_DIR}/${file}") - endif() - endif() -endfunction(latex_copy_input_file) - -############################################################################# -# Commands provided by the UseLATEX.cmake "package" -############################################################################# - -function(latex_usage command message) - message(SEND_ERROR - "${message}\n Usage: ${command}(\n [BIBFILES ...]\n [INPUTS ...]\n [IMAGE_DIRS ...]\n [IMAGES \n [CONFIGURE ...]\n [DEPENDS ...]\n [MULTIBIB_NEWCITES] \n [USE_BIBLATEX] [USE_INDEX] [USE_GLOSSARY] [USE_NOMENCL]\n [FORCE_PDF] [FORCE_DVI] [FORCE_HTML]\n [TARGET_NAME] \n [EXCLUDE_FROM_ALL]\n [EXCLUDE_FROM_DEFAULTS])" - ) -endfunction(latex_usage command message) - -# Parses arguments to add_latex_document and ADD_LATEX_TARGETS and sets the -# variables LATEX_TARGET, LATEX_IMAGE_DIR, LATEX_BIBFILES, LATEX_DEPENDS, and -# LATEX_INPUTS. -function(parse_add_latex_arguments command latex_main_input) - set(options - USE_BIBLATEX - USE_INDEX - USE_GLOSSARY - USE_NOMENCL - FORCE_PDF - FORCE_DVI - FORCE_HTML - EXCLUDE_FROM_ALL - EXCLUDE_FROM_DEFAULTS - # Deprecated options - USE_GLOSSARIES - DEFAULT_PDF - DEFAULT_SAFEPDF - DEFAULT_PS - NO_DEFAULT - MANGLE_TARGET_NAMES - ) - set(oneValueArgs - TARGET_NAME - ) - set(multiValueArgs - BIBFILES - MULTIBIB_NEWCITES - INPUTS - IMAGE_DIRS - IMAGES - CONFIGURE - DEPENDS - INDEX_NAMES - ) - cmake_parse_arguments( - LATEX "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - # Handle invalid and deprecated arguments - if(LATEX_UNPARSED_ARGUMENTS) - latex_usage(${command} "Invalid or deprecated arguments: ${LATEX_UNPARSED_ARGUMENTS}") - endif() - if(LATEX_USE_GLOSSARIES) - latex_usage(${command} "USE_GLOSSARIES option removed in version 1.6.1. Use USE_GLOSSARY instead.") - endif() - if(LATEX_DEFAULT_PDF) - latex_usage(${command} "DEFAULT_PDF option removed in version 2.0. Use FORCE_PDF option or LATEX_DEFAULT_BUILD CMake variable instead.") - endif() - if(LATEX_DEFAULT_SAFEPDF) - latex_usage(${command} "DEFAULT_SAFEPDF option removed in version 2.0. Use LATEX_DEFAULT_BUILD CMake variable instead.") - endif() - if(LATEX_DEFAULT_DVI) - latex_usage(${command} "DEFAULT_DVI option removed in version 2.0. Use FORCE_DVI option or LATEX_DEFAULT_BUILD CMake variable instead.") - endif() - if(LATEX_NO_DEFAULT) - latex_usage(${command} "NO_DEFAULT option removed in version 2.0. Use EXCLUDE_FROM_ALL instead.") - endif() - if(LATEX_MANGLE_TARGET_NAMES) - latex_usage(${command} "MANGLE_TARGET_NAMES option removed in version 2.0. All LaTeX targets use mangled names now.") - endif() - - # Capture the first argument, which is the main LaTeX input. - latex_get_filename_component(latex_target ${latex_main_input} NAME_WE) - set(LATEX_MAIN_INPUT ${latex_main_input} PARENT_SCOPE) - set(LATEX_TARGET ${latex_target} PARENT_SCOPE) - - # Propagate the result variables to the caller - foreach(arg_name ${options} ${oneValueArgs} ${multiValueArgs}) - set(var_name LATEX_${arg_name}) - set(${var_name} ${${var_name}} PARENT_SCOPE) - endforeach(arg_name) -endfunction(parse_add_latex_arguments) - -function(add_latex_targets_internal) - latex_get_output_path(output_dir) - - if(LATEX_USE_SYNCTEX) - set(synctex_flags ${LATEX_SYNCTEX_ARGS}) - else() - set(synctex_flags) - endif() - - # The commands to run LaTeX. They are repeated multiple times. - set(latex_build_command - ${LATEX_COMPILER} ${LATEX_COMPILER_ARGS} ${synctex_flags} ${LATEX_MAIN_INPUT} - ) - if(LATEX_COMPILER_ARGS MATCHES ".*batchmode.*") - # Wrap command in script that dumps the log file on error. This makes sure - # errors can be seen. - set(latex_build_command - ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=execute_latex - -D LATEX_TARGET=${LATEX_TARGET} - -D LATEX_WORKING_DIRECTORY="${output_dir}" - -D LATEX_FULL_COMMAND="${latex_build_command}" - -D LATEX_OUTPUT_FILE="${LATEX_TARGET}.dvi" - -P "${LATEX_USE_LATEX_LOCATION}" - ) - endif() - set(pdflatex_build_command - ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_ARGS} ${synctex_flags} ${LATEX_MAIN_INPUT} - ) - if(PDFLATEX_COMPILER_ARGS MATCHES ".*batchmode.*") - # Wrap command in script that dumps the log file on error. This makes sure - # errors can be seen. - set(pdflatex_build_command - ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=execute_latex - -D LATEX_TARGET=${LATEX_TARGET} - -D LATEX_WORKING_DIRECTORY="${output_dir}" - -D LATEX_FULL_COMMAND="${pdflatex_build_command}" - -D LATEX_OUTPUT_FILE="${LATEX_TARGET}.pdf" - -P "${LATEX_USE_LATEX_LOCATION}" - ) - endif() - - if(NOT LATEX_TARGET_NAME) - # Use the main filename (minus the .tex) as the target name. Remove any - # spaces since CMake cannot have spaces in its target names. - string(REPLACE " " "_" LATEX_TARGET_NAME ${LATEX_TARGET}) - endif() - - # Some LaTeX commands may need to be modified (or may not work) if the main - # tex file is in a subdirectory. Make a flag for that. - get_filename_component(LATEX_MAIN_INPUT_SUBDIR ${LATEX_MAIN_INPUT} DIRECTORY) - - # Set up target names. - set(dvi_target ${LATEX_TARGET_NAME}_dvi) - set(pdf_target ${LATEX_TARGET_NAME}_pdf) - set(ps_target ${LATEX_TARGET_NAME}_ps) - set(safepdf_target ${LATEX_TARGET_NAME}_safepdf) - set(html_target ${LATEX_TARGET_NAME}_html) - set(auxclean_target ${LATEX_TARGET_NAME}_auxclean) - - # Probably not all of these will be generated, but they could be. - # Note that the aux file is added later. - set(auxiliary_clean_files - ${output_dir}/${LATEX_TARGET}.aux - ${output_dir}/${LATEX_TARGET}.bbl - ${output_dir}/${LATEX_TARGET}.blg - ${output_dir}/${LATEX_TARGET}-blx.bib - ${output_dir}/${LATEX_TARGET}.glg - ${output_dir}/${LATEX_TARGET}.glo - ${output_dir}/${LATEX_TARGET}.gls - ${output_dir}/${LATEX_TARGET}.idx - ${output_dir}/${LATEX_TARGET}.ilg - ${output_dir}/${LATEX_TARGET}.ind - ${output_dir}/${LATEX_TARGET}.ist - ${output_dir}/${LATEX_TARGET}.log - ${output_dir}/${LATEX_TARGET}.out - ${output_dir}/${LATEX_TARGET}.toc - ${output_dir}/${LATEX_TARGET}.lof - ${output_dir}/${LATEX_TARGET}.xdy - ${output_dir}/${LATEX_TARGET}.synctex.gz - ${output_dir}/${LATEX_TARGET}.synctex.bak.gz - ${output_dir}/${LATEX_TARGET}.dvi - ${output_dir}/${LATEX_TARGET}.ps - ${output_dir}/${LATEX_TARGET}.pdf - ) - - set(image_list ${LATEX_IMAGES}) - - # For each directory in LATEX_IMAGE_DIRS, glob all the image files and - # place them in LATEX_IMAGES. - foreach(dir ${LATEX_IMAGE_DIRS}) - if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${dir}) - message(WARNING "Image directory ${CMAKE_CURRENT_SOURCE_DIR}/${dir} does not exist. Are you sure you gave relative directories to IMAGE_DIRS?") - endif() - foreach(extension ${LATEX_IMAGE_EXTENSIONS}) - file(GLOB files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/*${extension}) - foreach(file ${files}) - latex_get_filename_component(filename ${file} NAME) - list(APPEND image_list ${dir}/${filename}) - endforeach(file) - endforeach(extension) - endforeach(dir) - - latex_process_images(dvi_images pdf_images ${image_list}) - - set(make_dvi_command - ${CMAKE_COMMAND} -E chdir ${output_dir} - ${latex_build_command}) - set(make_pdf_command - ${CMAKE_COMMAND} -E chdir ${output_dir} - ${pdflatex_build_command} - ) - - set(make_dvi_depends ${LATEX_DEPENDS} ${dvi_images}) - set(make_pdf_depends ${LATEX_DEPENDS} ${pdf_images}) - foreach(input ${LATEX_MAIN_INPUT} ${LATEX_INPUTS}) - list(APPEND make_dvi_depends ${output_dir}/${input}) - list(APPEND make_pdf_depends ${output_dir}/${input}) - if(${input} MATCHES "\\.tex$") - # Dependent .tex files might have their own .aux files created. Make - # sure these get cleaned as well. This might replicate the cleaning - # of the main .aux file, which is OK. - string(REGEX REPLACE "\\.tex$" "" input_we ${input}) - list(APPEND auxiliary_clean_files - ${output_dir}/${input_we}.aux - ${output_dir}/${input}.aux - ) - endif() - endforeach(input) - - set(all_latex_sources ${LATEX_MAIN_INPUT} ${LATEX_INPUTS} ${image_list}) - - if(LATEX_USE_GLOSSARY) - foreach(dummy 0 1) # Repeat these commands twice. - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=makeglossaries - -D LATEX_TARGET=${LATEX_TARGET} - -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} - -D XINDY_COMPILER=${XINDY_COMPILER} - -D MAKEGLOSSARIES_COMPILER_ARGS=${MAKEGLOSSARIES_COMPILER_ARGS} - -P ${LATEX_USE_LATEX_LOCATION} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${latex_build_command} - ) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=makeglossaries - -D LATEX_TARGET=${LATEX_TARGET} - -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} - -D XINDY_COMPILER=${XINDY_COMPILER} - -D MAKEGLOSSARIES_COMPILER_ARGS=${MAKEGLOSSARIES_COMPILER_ARGS} - -P ${LATEX_USE_LATEX_LOCATION} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${pdflatex_build_command} - ) - endforeach(dummy) - endif() - - if(LATEX_USE_NOMENCL) - foreach(dummy 0 1) # Repeat these commands twice. - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=makenomenclature - -D LATEX_TARGET=${LATEX_TARGET} - -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} - -D MAKENOMENCLATURE_COMPILER_ARGS=${MAKENOMENCLATURE_COMPILER_ARGS} - -P ${LATEX_USE_LATEX_LOCATION} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${latex_build_command} - ) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=makenomenclature - -D LATEX_TARGET=${LATEX_TARGET} - -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} - -D MAKENOMENCLATURE_COMPILER_ARGS=${MAKENOMENCLATURE_COMPILER_ARGS} - -P ${LATEX_USE_LATEX_LOCATION} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${pdflatex_build_command} - ) - endforeach(dummy) - endif() - - if(LATEX_BIBFILES) - if(LATEX_USE_BIBLATEX) - if(NOT BIBER_COMPILER) - message(SEND_ERROR "I need the biber command.") - endif() - set(bib_compiler ${BIBER_COMPILER}) - set(bib_compiler_flags ${BIBER_COMPILER_ARGS}) - - if (LATEX_USE_BIBLATEX_CONFIG) - list(APPEND auxiliary_clean_files ${output_dir}/biblatex.cfg) - list(APPEND make_dvi_depends ${output_dir}/biblatex.cfg) - list(APPEND make_pdf_depends ${output_dir}/biblatex.cfg) - endif() - else() - set(bib_compiler ${BIBTEX_COMPILER}) - set(bib_compiler_flags ${BIBTEX_COMPILER_ARGS}) - endif() - if(LATEX_MULTIBIB_NEWCITES) - foreach (multibib_auxfile ${LATEX_MULTIBIB_NEWCITES}) - latex_get_filename_component(multibib_target ${multibib_auxfile} NAME_WE) - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${bib_compiler} ${bib_compiler_flags} ${multibib_target}) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${bib_compiler} ${bib_compiler_flags} ${multibib_target}) - set(auxiliary_clean_files ${auxiliary_clean_files} - ${output_dir}/${multibib_target}.aux) - endforeach (multibib_auxfile ${LATEX_MULTIBIB_NEWCITES}) - else() - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${bib_compiler} ${bib_compiler_flags} ${LATEX_TARGET}) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${bib_compiler} ${bib_compiler_flags} ${LATEX_TARGET}) - endif() - - foreach (bibfile ${LATEX_BIBFILES}) - list(APPEND make_dvi_depends ${output_dir}/${bibfile}) - list(APPEND make_pdf_depends ${output_dir}/${bibfile}) - endforeach (bibfile ${LATEX_BIBFILES}) - else() - if(LATEX_MULTIBIB_NEWCITES) - message(WARNING "MULTIBIB_NEWCITES has no effect without BIBFILES option.") - endif() - endif() - - if(LATEX_USE_INDEX) - if(LATEX_INDEX_NAMES) - set(INDEX_NAMES ${LATEX_INDEX_NAMES}) - else() - set(INDEX_NAMES ${LATEX_TARGET}) - endif() - foreach(idx_name ${INDEX_NAMES}) - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${latex_build_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_ARGS} ${idx_name}.idx) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${pdflatex_build_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_ARGS} ${idx_name}.idx) - set(auxiliary_clean_files ${auxiliary_clean_files} - ${output_dir}/${idx_name}.idx - ${output_dir}/${idx_name}.ilg - ${output_dir}/${idx_name}.ind) - endforeach() - else() - if(LATEX_INDEX_NAMES) - message(WARNING "INDEX_NAMES has no effect without USE_INDEX option.") - endif() - endif() - - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${latex_build_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${latex_build_command}) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${pdflatex_build_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${pdflatex_build_command}) - - # Need to run one more time to remove biblatex' warning - # about page breaks that have changed. - if(LATEX_USE_BIBLATEX) - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${latex_build_command}) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${pdflatex_build_command}) - endif() - - if(LATEX_USE_SYNCTEX) - if(NOT GZIP) - message(SEND_ERROR "UseLATEX.cmake: USE_SYNTEX option requires gzip program. Set GZIP variable.") - endif() - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=correct_synctex - -D LATEX_TARGET=${LATEX_TARGET} - -D GZIP=${GZIP} - -D "LATEX_SOURCE_DIRECTORY=${CMAKE_CURRENT_SOURCE_DIR}" - -D "LATEX_BINARY_DIRECTORY=${output_dir}" - -P ${LATEX_USE_LATEX_LOCATION} - ) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=correct_synctex - -D LATEX_TARGET=${LATEX_TARGET} - -D GZIP=${GZIP} - -D "LATEX_SOURCE_DIRECTORY=${CMAKE_CURRENT_SOURCE_DIR}" - -D "LATEX_BINARY_DIRECTORY=${output_dir}" - -P ${LATEX_USE_LATEX_LOCATION} - ) - endif() - - # Check LaTeX output for important warnings at end of build - set(make_dvi_command ${make_dvi_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=check_important_warnings - -D LATEX_TARGET=${LATEX_TARGET} - -P ${LATEX_USE_LATEX_LOCATION} - ) - set(make_pdf_command ${make_pdf_command} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${CMAKE_COMMAND} - -D LATEX_BUILD_COMMAND=check_important_warnings - -D LATEX_TARGET=${LATEX_TARGET} - -P ${LATEX_USE_LATEX_LOCATION} - ) - - # Capture the default build. - string(TOLOWER "${LATEX_DEFAULT_BUILD}" default_build) - - if((NOT LATEX_FORCE_PDF) AND (NOT LATEX_FORCE_DVI) AND (NOT LATEX_FORCE_HTML)) - set(no_force TRUE) - endif() - - # Add commands and targets for building pdf outputs (with pdflatex). - if(LATEX_FORCE_PDF OR no_force) - if(LATEX_FORCE_PDF) - set(default_build pdf) - endif() - - if(PDFLATEX_COMPILER) - add_custom_command(OUTPUT ${output_dir}/${LATEX_TARGET}.pdf - COMMAND ${make_pdf_command} - DEPENDS ${make_pdf_depends} - ) - add_custom_target(${pdf_target} - DEPENDS ${output_dir}/${LATEX_TARGET}.pdf - SOURCES ${all_latex_sources} - ) - if(NOT LATEX_EXCLUDE_FROM_DEFAULTS) - add_dependencies(pdf ${pdf_target}) - endif() - endif() - endif() - - # Add commands and targets for building dvi outputs. - if(LATEX_FORCE_DVI OR LATEX_FORCE_HTML OR no_force) - if(LATEX_FORCE_DVI) - if((NOT default_build STREQUAL dvi) AND - (NOT default_build STREQUAL ps) AND - (NOT default_build STREQUAL safepdf)) - set(default_build dvi) - endif() - endif() - - add_custom_command(OUTPUT ${output_dir}/${LATEX_TARGET}.dvi - COMMAND ${make_dvi_command} - DEPENDS ${make_dvi_depends} - ) - add_custom_target(${dvi_target} - DEPENDS ${output_dir}/${LATEX_TARGET}.dvi - SOURCES ${all_latex_sources} - ) - if(NOT LATEX_EXCLUDE_FROM_DEFAULTS) - add_dependencies(dvi ${dvi_target}) - endif() - - if(DVIPS_CONVERTER) - add_custom_command(OUTPUT ${output_dir}/${LATEX_TARGET}.ps - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${DVIPS_CONVERTER} ${DVIPS_CONVERTER_ARGS} -o ${LATEX_TARGET}.ps ${LATEX_TARGET}.dvi - DEPENDS ${output_dir}/${LATEX_TARGET}.dvi) - add_custom_target(${ps_target} - DEPENDS ${output_dir}/${LATEX_TARGET}.ps - SOURCES ${all_latex_sources} - ) - if(NOT LATEX_EXCLUDE_FROM_DEFAULTS) - add_dependencies(ps ${ps_target}) - endif() - if(PS2PDF_CONVERTER) - # Since both the pdf and safepdf targets have the same output, we - # cannot properly do the dependencies for both. When selecting safepdf, - # simply force a recompile every time. - add_custom_target(${safepdf_target} - ${CMAKE_COMMAND} -E chdir ${output_dir} - ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_ARGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf - DEPENDS ${ps_target} - ) - if(NOT LATEX_EXCLUDE_FROM_DEFAULTS) - add_dependencies(safepdf ${safepdf_target}) - endif() - endif() - endif() - endif() - - if(LATEX_FORCE_HTML OR no_force) - if (LATEX_FORCE_HTML) - set(default_build html) - endif() - - if(HTLATEX_COMPILER AND LATEX_MAIN_INPUT_SUBDIR) - message(STATUS - "Disabling HTML build for ${LATEX_TARGET_NAME}.tex because the main file is in subdirectory ${LATEX_MAIN_INPUT_SUBDIR}" - ) - # The code below to run HTML assumes that LATEX_TARGET.tex is in the - # current directory. I have tried to specify that LATEX_TARGET.tex is - # in a subdirectory. That makes the build targets correct, but the - # HTML build still fails (at least for htlatex) because files are not - # generated where expected. I am getting around the problem by simply - # disabling HTML in this case. If someone really cares, they can fix - # this, but make sure it runs on many platforms and build programs. - elseif(HTLATEX_COMPILER) - # htlatex places the output in a different location - set(HTML_OUTPUT "${output_dir}/${LATEX_TARGET}.html") - add_custom_command(OUTPUT ${HTML_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} - ${HTLATEX_COMPILER} ${LATEX_MAIN_INPUT} - "${HTLATEX_COMPILER_TEX4HT_FLAGS}" - "${HTLATEX_COMPILER_TEX4HT_POSTPROCESSOR_FLAGS}" - "${HTLATEX_COMPILER_T4HT_POSTPROCESSOR_FLAGS}" - ${HTLATEX_COMPILER_ARGS} - DEPENDS - ${output_dir}/${LATEX_TARGET}.tex - ${output_dir}/${LATEX_TARGET}.dvi - VERBATIM - ) - add_custom_target(${html_target} - DEPENDS ${HTML_OUTPUT} ${dvi_target} - SOURCES ${all_latex_sources} - ) - if(NOT LATEX_EXCLUDE_FROM_DEFAULTS) - add_dependencies(html ${html_target}) - endif() - endif() - endif() - - # Set default targets. - if("${default_build}" STREQUAL "pdf") - add_custom_target(${LATEX_TARGET_NAME} DEPENDS ${pdf_target}) - elseif("${default_build}" STREQUAL "dvi") - add_custom_target(${LATEX_TARGET_NAME} DEPENDS ${dvi_target}) - elseif("${default_build}" STREQUAL "ps") - add_custom_target(${LATEX_TARGET_NAME} DEPENDS ${ps_target}) - elseif("${default_build}" STREQUAL "safepdf") - add_custom_target(${LATEX_TARGET_NAME} DEPENDS ${safepdf_target}) - elseif("${default_build}" STREQUAL "html") - add_custom_target(${LATEX_TARGET_NAME} DEPENDS ${html_target}) - else() - message(SEND_ERROR "LATEX_DEFAULT_BUILD set to an invalid value. See the documentation for that variable.") - endif() - - if(NOT LATEX_EXCLUDE_FROM_ALL) - add_custom_target(_${LATEX_TARGET_NAME} ALL DEPENDS ${LATEX_TARGET_NAME}) - endif() - - set_directory_properties(. - ADDITIONAL_MAKE_CLEAN_FILES "${auxiliary_clean_files}" - ) - - add_custom_target(${auxclean_target} - COMMENT "Cleaning auxiliary LaTeX files." - COMMAND ${CMAKE_COMMAND} -E remove ${auxiliary_clean_files} - ) - add_dependencies(auxclean ${auxclean_target}) -endfunction(add_latex_targets_internal) - -function(add_latex_targets latex_main_input) - latex_get_output_path(output_dir) - parse_add_latex_arguments(ADD_LATEX_TARGETS ${latex_main_input} ${ARGN}) - - add_latex_targets_internal() -endfunction(add_latex_targets) - -function(add_latex_document latex_main_input) - latex_get_output_path(output_dir) - if(output_dir) - parse_add_latex_arguments(add_latex_document ${latex_main_input} ${ARGN}) - - latex_copy_input_file(${LATEX_MAIN_INPUT}) - - foreach (bib_file ${LATEX_BIBFILES}) - latex_copy_input_file(${bib_file}) - endforeach (bib_file) - - if (LATEX_USE_BIBLATEX AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/biblatex.cfg) - latex_copy_input_file(biblatex.cfg) - set(LATEX_USE_BIBLATEX_CONFIG TRUE) - endif() - - foreach (input ${LATEX_INPUTS}) - latex_copy_input_file(${input}) - endforeach(input) - - latex_copy_globbed_files(${CMAKE_CURRENT_SOURCE_DIR}/*.cls ${output_dir}) - latex_copy_globbed_files(${CMAKE_CURRENT_SOURCE_DIR}/*.bst ${output_dir}) - latex_copy_globbed_files(${CMAKE_CURRENT_SOURCE_DIR}/*.clo ${output_dir}) - latex_copy_globbed_files(${CMAKE_CURRENT_SOURCE_DIR}/*.sty ${output_dir}) - latex_copy_globbed_files(${CMAKE_CURRENT_SOURCE_DIR}/*.ist ${output_dir}) - latex_copy_globbed_files(${CMAKE_CURRENT_SOURCE_DIR}/*.fd ${output_dir}) - - add_latex_targets_internal() - endif() -endfunction(add_latex_document) - -############################################################################# -# Actually do stuff -############################################################################# - -if(LATEX_BUILD_COMMAND) - set(command_handled) - - if("${LATEX_BUILD_COMMAND}" STREQUAL execute_latex) - latex_execute_latex() - set(command_handled TRUE) - endif() - - if("${LATEX_BUILD_COMMAND}" STREQUAL makeglossaries) - latex_makeglossaries() - set(command_handled TRUE) - endif() - - if("${LATEX_BUILD_COMMAND}" STREQUAL makenomenclature) - latex_makenomenclature() - set(command_handled TRUE) - endif() - - if("${LATEX_BUILD_COMMAND}" STREQUAL correct_synctex) - latex_correct_synctex() - set(command_handled TRUE) - endif() - - if("${LATEX_BUILD_COMMAND}" STREQUAL check_important_warnings) - latex_check_important_warnings() - set(command_handled TRUE) - endif() - - if(NOT command_handled) - message(SEND_ERROR "Unknown command: ${LATEX_BUILD_COMMAND}") - endif() - -else() - # Must be part of the actual configure (included from CMakeLists.txt). - latex_setup_variables() - latex_setup_targets() -endif() diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildECM.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildECM.cmake deleted file mode 100644 index 8bf22692c3e..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildECM.cmake +++ /dev/null @@ -1,27 +0,0 @@ -#.rst: -# BuildECM -# -------- -# -# ECM - extra-cmake-modules (from KDE project) - -#============================================================================= -# Copyright 2013-2014 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - - -include(YCMEPHelper) - -ycm_ep_helper(ECM TYPE GIT - STYLE KDE - REPOSITORY extra-cmake-modules.git - TAG master) diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildEigen3.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildEigen3.cmake deleted file mode 100644 index 83c02a56475..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildEigen3.cmake +++ /dev/null @@ -1,25 +0,0 @@ -#.rst: -# BuildEigen3 -# ----------- -# -# Eigen3 - -#============================================================================= -# Copyright 2014 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - -include(YCMEPHelper) - -ycm_ep_helper(Eigen3 TYPE HG - STYLE BITBUCKET - REPOSITORY eigen/eigen) diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildGazeboYARPPlugins.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildGazeboYARPPlugins.cmake deleted file mode 100644 index d5bf5a83c80..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildGazeboYARPPlugins.cmake +++ /dev/null @@ -1,45 +0,0 @@ -#.rst: -# BuildGazeboYARPPlugins -# ---------------------- -# -# GazeboYARPPlugins - -#============================================================================= -# Copyright 2013-2014 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - -include(YCMEPHelper) -include(FindOrBuildPackage) - -find_or_build_package(YARP QUIET) -# gazebo-config.cmake requires C -if(NOT CMAKE_C_COMPILER_LOADED) - enable_language(C) -endif() -find_package(gazebo QUIET) -find_package(Boost COMPONENTS serialization system QUIET) - -ycm_ep_helper(GazeboYARPPlugins TYPE GIT - STYLE GITHUB - REPOSITORY robotology/gazebo_yarp_plugins.git - TAG master - DEPENDS YARP - gazebo - Boost) - -ycm_ep_helper(gazebo_yarp_plugins.wiki TYPE GIT - STYLE GITHUB - REPOSITORY robotology/gazebo_yarp_plugins.wiki.git - TAG master - COMPONENT documentation - EXCLUDE_FROM_ALL 1) diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildGooCanvas.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildGooCanvas.cmake deleted file mode 100644 index 1ce30124ea6..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildGooCanvas.cmake +++ /dev/null @@ -1,36 +0,0 @@ -#.rst: -# BuildGooCanvas -# -------------- -# -# GooCanvas - -#============================================================================= -# Copyright 2013-2015 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - - -include(YCMEPHelper) -include(ExternalProject) - -ycm_ep_helper(GooCanvas TYPE GIT - STYLE GNOME - REPOSITORY goocanvas.git - TAG goocanvas-1.0 - CONFIGURE_COMMAND /configure --enable-maintainer-mode --prefix=) - -externalproject_add_step(GooCanvas prepare - COMMAND NOCONFIGURE=1 /autogen.sh - WORKING_DIRECTORY - COMMENT "Performing prepare step (autogen.sh) for 'GooCanvas'" - DEPENDEES update - DEPENDERS configure) diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildGooCanvasMM.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildGooCanvasMM.cmake deleted file mode 100644 index b09aae1c6ab..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildGooCanvasMM.cmake +++ /dev/null @@ -1,46 +0,0 @@ -#.rst: -# BuildGooCanvasMM -# ---------------- -# -# GooCanvasMM - -#============================================================================= -# Copyright 2013-2015 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - - -include(YCMEPHelper) -include(ExternalProject) - -find_or_build_package(GooCanvas QUIET) -if(COMMAND set_package_properties) - set_package_properties(GooCanvas PROPERTIES PURPOSE "Used by GooCanvasMM") -endif() - -# TODO find_package(MMCommon required) -> mm-common -# TODO libgtkmm-2.4-dev - -ycm_ep_helper(GooCanvasMM TYPE GIT - STYLE GNOME - REPOSITORY goocanvasmm.git - TAG goocanvasmm-1.0 - DEPENDS GooCanvas - CONFIGURE_COMMAND /configure --enable-maintainer-mode --prefix=) - -externalproject_add_step(GooCanvasMM prepare - COMMAND NOCONFIGURE=1 /autogen.sh - WORKING_DIRECTORY - COMMENT "Performing prepare step (autogen.sh) for 'GooCanvasMM'" - DEPENDEES update - DEPENDERS configure) - diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildGtkDatabox.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildGtkDatabox.cmake deleted file mode 100644 index c73976fbdd7..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildGtkDatabox.cmake +++ /dev/null @@ -1,37 +0,0 @@ -#.rst: -# BuildGtkDatabox -# --------------- -# -# GtkDatabox - -#============================================================================= -# Copyright 2013-2015 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - - -include(YCMEPHelper) -include(ExternalProject) - -ycm_ep_helper(GtkDatabox TYPE GIT - STYLE SOURCEFORGE - REPOSITORY gtkdatabox/git - TAG GTK2 - CONFIGURE_COMMAND /configure --enable-maintainer-mode --prefix=) - -externalproject_add_step(GtkDatabox prepare - COMMAND autoreconf --force --install --verbose - WORKING_DIRECTORY - COMMENT "Performing prepare step (autogen.sh) for 'GtkDatabox'" - DEPENDEES update - DEPENDERS configure) - diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildGtkDataboxMM.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildGtkDataboxMM.cmake deleted file mode 100644 index d45dde34e6d..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildGtkDataboxMM.cmake +++ /dev/null @@ -1,43 +0,0 @@ -#.rst: -# BuildGtkDataboxMM -# ----------------- -# -# GtkDataboxMM - -#============================================================================= -# Copyright 2013-2015 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - - -include(YCMEPHelper) -include(ExternalProject) - -find_or_build_package(GtkDatabox QUIET) -if(COMMAND set_package_properties) - set_package_properties(GtkDatabox PROPERTIES PURPOSE "Used by GtkDatabox") -endif() - -ycm_ep_helper(GtkDataboxMM TYPE GIT - STYLE SOURCEFORGE - REPOSITORY gtkdataboxmm/code - DEPENDS GtkDatabox - TAG v0.9.4 - CONFIGURE_COMMAND /configure --enable-maintainer-mode --prefix=) - -externalproject_add_step(GtkDataboxMM prepare - COMMAND NOCONFIGURE=1 /autogen.sh - WORKING_DIRECTORY - COMMENT "Performing prepare step (autogen.sh) for 'GtkDataboxMM'" - DEPENDEES update - DEPENDERS configure) - diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildICUB.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildICUB.cmake deleted file mode 100644 index 998681eb29a..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildICUB.cmake +++ /dev/null @@ -1,59 +0,0 @@ -#.rst: -# BuildICUB -# --------- -# -# ICUB - -#============================================================================= -# Copyright 2013-2014 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - -include(YCMEPHelper) -include(FindOrBuildPackage) - -find_or_build_package(YARP QUIET) - -ycm_ep_helper(ICUB TYPE GIT - STYLE GITHUB - REPOSITORY robotology/icub-main.git - DEPENDS YARP - CMAKE_CACHE_ARGS -DYARP_USE_GTK2:BOOL=ON - -DICUB_SHARED_LIBRARY:BOOL=ON - -DICUB_USE_GLUT:BOOL=ON - -DENABLE_icubmod_DFKI_hand_calibrator:BOOL=ON - -DENABLE_icubmod_dragonfly2:BOOL=OFF - -DENABLE_icubmod_dragonfly2raw:BOOL=OFF - -DENABLE_icubmod_fakecan:BOOL=ON - -DENABLE_icubmod_analogServer:BOOL=ON - -DENABLE_icubmod_cartesiancontrollerclien:BOOL=ON - -DENABLE_icubmod_cartesiancontrollerserver:BOOL=ON - -DENABLE_icubmod_debugInterfaceClient:BOOL=ON - -DENABLE_icubmod_gazecontrollerclient:BOOL=ON - -DENABLE_icubmod_icubarmcalibrator:BOOL=ON - -DENABLE_icubmod_icubarmcalibratorj4:BOOL=ON - -DENABLE_icubmod_icubarmcalibratorj8:BOOL=ON - -DENABLE_icubmod_icubhandcalibrator:BOOL=ON - -DENABLE_icubmod_icubheadcalibrator:BOOL=ON - -DENABLE_icubmod_icubheadcalibratorV2:BOOL=ON - -DENABLE_icubmod_icublegscalibrator:BOOL=ON - -DENABLE_icubmod_icubtalkingheadcalibrator:BOOL=ON - -DENABLE_icubmod_icubtorsoonlycalibrator:BOOL=ON - -DENABLE_icubmod_logpolarclient:BOOL=ON - -DENABLE_icubmod_logpolargrabber:BOOL=ON - -DENABLE_icubmod_sharedcan:BOOL=ON - -DENABLE_icubmod_skinWrapper:BOOL=ON - -DENABLE_icubmod_skinprototype:BOOL=ON - -DENABLE_icubmod_socketcan:BOOL=ON - -DENABLE_icubmod_static_grabber:BOOL=ON - -DENABLE_icubmod_virtualAnalogServer:BOOL=ON - -DENABLE_icubmod_xsensmtx:BOOL=ON) diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildTinyXML.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildTinyXML.cmake deleted file mode 100644 index 8b46f58f60e..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildTinyXML.cmake +++ /dev/null @@ -1,25 +0,0 @@ -#.rst: -# BuildTinyXML -# ------------ -# -# TinyXML - -#============================================================================= -# Copyright 2013-2014 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - -include(YCMEPHelper) - -ycm_ep_helper(TinyXML TYPE GIT - STYLE GITHUB - REPOSITORY robotology-dependencies/tinyxml.git) diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildYARP.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildYARP.cmake deleted file mode 100644 index 65485e004b2..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildYARP.cmake +++ /dev/null @@ -1,86 +0,0 @@ -#.rst: -# BuildYARP -# --------- -# -# YARP - -#============================================================================= -# Copyright 2013-2014 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - -include(YCMEPHelper) -include(FindOrBuildPackage) - - -find_or_build_package(TinyXML QUIET) -if(COMMAND set_package_properties) - set_package_properties(TinyXML PROPERTIES PURPOSE "Used by YARP") -endif() - -find_or_build_package(GooCanvasMM QUIET) -if(COMMAND set_package_properties) - set_package_properties(GooCanvasMM PROPERTIES PURPOSE "Used by YARP") -endif() - -find_or_build_package(GtkDataboxMM QUIET) -if(COMMAND set_package_properties) - set_package_properties(GtkDatabox PROPERTIES PURPOSE "Used by YARP") -endif() - -# find_or_build_package(SQLite) - - -# For bindings -find_package(SWIG QUIET) -find_package(PythonLibs QUIET) -find_package(PythonInterp QUIET) - -ycm_ep_helper(YARP TYPE GIT - STYLE GITHUB - REPOSITORY robotology/yarp.git - TAG master - DEPENDS TinyXML - GooCanvasMM - GtkDataboxMM - CMAKE_CACHE_ARGS -DCREATE_IDLS:BOOL=ON - -DCREATE_GUIS:BOOL=ON - -DCREATE_SHARED_LIBRARY:BOOL=ON - -DYARP_USE_SYSTEM_SQLITE:BOOL=ON - -DCREATE_LIB_MATH:BOOL=ON - -DYARP_USE_ATLAS:BOOL=OFF - -DDOX_GENERATE_XML:BOOL=ON - -DCREATE_OPTIONAL_CARRIERS:BOOL=ON - -DENABLE_yarpcar_bayer_carrier:BOOL=ON - -DUSE_LIBDC1394:BOOL=OFF - -DENABLE_yarpcar_tcpros_carrier:BOOL=ON - -DENABLE_yarpcar_xmlrpc_carrier:BOOL=ON - -DENABLE_yarpcar_priority_carrier:BOOL=ON - -DENABLE_yarpcar_bayer_carrier:BOOL=ON - -DENABLE_yarpidl_thrift:BOOL=ON - -DCREATE_DEVICE_LIBRARY_MODULES:BOOL=ON - -DENABLE_yarpcar_human_carrier:BOOL=ON - -DENABLE_yarpcar_mjpeg_carrier:BOOL=ON - -DENABLE_yarpcar_rossrv_carrier:BOOL=ON - -DENABLE_yarpmod_fakebot:BOOL=ON - -DENABLE_yarpmod_opencv_grabber:BOOL=OFF - -DYARP_CLEAN_API:BOOL=ON - -DYARP_COMPILE_TESTS:BOOL=OFF - -DCREATE_YARPBUILDER:BOOL=ON - -DYARP_COMPILE_EXPERIMENTAL_WRAPPERS:BOOL=ON - -DYARP_DOXYGEN_XML:BOOL=ON - -DYARP_DOXYGEN_TAGFILE:BOOL=ON - -DYARP_COMPILE_BINDINGS:BOOL=ON - -DCREATE_PYTHON:BOOL=ON - -DYARP_COMPILE_TESTS:BOOL=ON - TEST_BEFORE_INSTALL 1 - TEST_EXCLUDE_FROM_MAIN 1) diff --git a/extern/ycm/ycm-0.11.0/build-modules/BuildqpOASES.cmake b/extern/ycm/ycm-0.11.0/build-modules/BuildqpOASES.cmake deleted file mode 100644 index 741652f5de7..00000000000 --- a/extern/ycm/ycm-0.11.0/build-modules/BuildqpOASES.cmake +++ /dev/null @@ -1,35 +0,0 @@ -#.rst: -# BuildECM -# -------- -# -# qpOASES - -#============================================================================= -# Copyright 2014 Istituto Italiano di Tecnologia (IIT) -# Authors: Daniele E. Domenichelli -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of YCM, substitute the full -# License text for the above reference.) - -# TYPE SVN STYLE COIN_OR -set(YCM_SVN_COIN_OR_USERNAME "" CACHE STRING "Username to use for coin-or svn repositories") -set(YCM_SVN_COIN_OR_PASSWORD "" CACHE STRING "Password to use for coin-or svn repositories") -set(YCM_SVN_COIN_OR_BASE_ADDRESS "https://projects.coin-or.org/svn/" CACHE INTERNAL "Address to use for coin-or svn repositories") -mark_as_advanced(YCM_SVN_COIN_OR_USERNAME YCM_SVN_COIN_OR_PASSWORD) - -# qpOASES -include(YCMEPHelper) - -ycm_ep_helper(qpOASES TYPE SVN - STYLE COIN_OR - REPOSITORY qpOASES/stable/3.0 - TRUST_CERT 1 - COMPONENT external - INSTALL_COMMAND "") diff --git a/extern/ycm/ycm-0.11.0/cmake-3.13/Copyright.txt b/extern/ycm/ycm-0.11.0/cmake-3.13/Copyright.txt deleted file mode 100644 index 743c63418e3..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.13/Copyright.txt +++ /dev/null @@ -1,126 +0,0 @@ -CMake - Cross Platform Makefile Generator -Copyright 2000-2018 Kitware, Inc. and Contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -* Neither the name of Kitware, Inc. nor the names of Contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ------------------------------------------------------------------------------- - -The following individuals and institutions are among the Contributors: - -* Aaron C. Meadows -* Adriaan de Groot -* Aleksey Avdeev -* Alexander Neundorf -* Alexander Smorkalov -* Alexey Sokolov -* Alex Turbov -* Andreas Pakulat -* Andreas Schneider -* André Rigland Brodtkorb -* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf -* Benjamin Eikel -* Bjoern Ricks -* Brad Hards -* Christopher Harvey -* Christoph Grüninger -* Clement Creusot -* Daniel Blezek -* Daniel Pfeifer -* Enrico Scholz -* Eran Ifrah -* Esben Mose Hansen, Ange Optimization ApS -* Geoffrey Viola -* Google Inc -* Gregor Jasny -* Helio Chissini de Castro -* Ilya Lavrenov -* Insight Software Consortium -* Jan Woetzel -* Kelly Thompson -* Konstantin Podsvirov -* Mario Bensi -* Mathieu Malaterre -* Matthaeus G. Chajdas -* Matthias Kretz -* Matthias Maennich -* Michael Stürmer -* Miguel A. Figueroa-Villanueva -* Mike Jackson -* Mike McQuaid -* Nicolas Bock -* Nicolas Despres -* Nikita Krupen'ko -* NVIDIA Corporation -* OpenGamma Ltd. -* Patrick Stotko -* Per Øyvind Karlsen -* Peter Collingbourne -* Petr Gotthard -* Philip Lowman -* Philippe Proulx -* Raffi Enficiaud, Max Planck Society -* Raumfeld -* Roger Leigh -* Rolf Eike Beer -* Roman Donchenko -* Roman Kharitonov -* Ruslan Baratov -* Sebastian Holtermann -* Stephen Kelly -* Sylvain Joubert -* Thomas Sondergaard -* Tobias Hunger -* Todd Gamblin -* Tristan Carel -* University of Dundee -* Vadim Zhukov -* Will Dicharry - -See version control history for details of individual contributions. - -The above copyright and license notice applies to distributions of -CMake in source and binary form. Third-party software packages supplied -with CMake under compatible licenses provide their own copyright notices -documented in corresponding subdirectories or source files. - ------------------------------------------------------------------------------- - -CMake was initially developed by Kitware with the following sponsorship: - - * National Library of Medicine at the National Institutes of Health - as part of the Insight Segmentation and Registration Toolkit (ITK). - - * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel - Visualization Initiative. - - * National Alliance for Medical Image Computing (NAMIC) is funded by the - National Institutes of Health through the NIH Roadmap for Medical Research, - Grant U54 EB005149. - - * Kitware, Inc. diff --git a/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/CMakeParseArguments.cmake b/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/CMakeParseArguments.cmake deleted file mode 100644 index 7ee2bbacef5..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/CMakeParseArguments.cmake +++ /dev/null @@ -1,11 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#.rst: -# CMakeParseArguments -# ------------------- -# -# This module once implemented the :command:`cmake_parse_arguments` command -# that is now implemented natively by CMake. It is now an empty placeholder -# for compatibility with projects that include it to get the command from -# CMake 3.4 and lower. diff --git a/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindDoxygen.cmake b/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindDoxygen.cmake deleted file mode 100644 index cb4738bab41..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindDoxygen.cmake +++ /dev/null @@ -1,1117 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindDoxygen ------------ - -Doxygen is a documentation generation tool (see http://www.doxygen.org). -This module looks for Doxygen and some optional tools it supports. These -tools are enabled as components in the :command:`find_package` command: - -``dot`` - `Graphviz `_ ``dot`` utility used to render various - graphs. -``mscgen`` - `Message Chart Generator `_ utility used - by Doxygen's ``\msc`` and ``\mscfile`` commands. -``dia`` - `Dia `_ the diagram editor used by Doxygen's - ``\diafile`` command. - -Examples: - -.. code-block:: cmake - - # Require dot, treat the other components as optional - find_package(Doxygen - REQUIRED dot - OPTIONAL_COMPONENTS mscgen dia) - -The following variables are defined by this module: - -.. variable:: DOXYGEN_FOUND - - True if the ``doxygen`` executable was found. - -.. variable:: DOXYGEN_VERSION - - The version reported by ``doxygen --version``. - -The module defines ``IMPORTED`` targets for Doxygen and each component found. -These can be used as part of custom commands, etc. and should be preferred over -old-style (and now deprecated) variables like ``DOXYGEN_EXECUTABLE``. The -following import targets are defined if their corresponding executable could be -found (the component import targets will only be defined if that component was -requested): - -:: - - Doxygen::doxygen - Doxygen::dot - Doxygen::mscgen - Doxygen::dia - - -Functions -^^^^^^^^^ - -.. command:: doxygen_add_docs - - This function is intended as a convenience for adding a target for generating - documentation with Doxygen. It aims to provide sensible defaults so that - projects can generally just provide the input files and directories and that - will be sufficient to give sensible results. The function supports the - ability to customize the Doxygen configuration used to build the - documentation. - - :: - - doxygen_add_docs(targetName - [filesOrDirs...] - [ALL] - [WORKING_DIRECTORY dir] - [COMMENT comment]) - - The function constructs a ``Doxyfile`` and defines a custom target that runs - Doxygen on that generated file. The listed files and directories are used as - the ``INPUT`` of the generated ``Doxyfile`` and they can contain wildcards. - Any files that are listed explicitly will also be added as ``SOURCES`` of the - custom target so they will show up in an IDE project's source list. - - So that relative input paths work as expected, by default the working - directory of the Doxygen command will be the current source directory (i.e. - :variable:`CMAKE_CURRENT_SOURCE_DIR`). This can be overridden with the - ``WORKING_DIRECTORY`` option to change the directory used as the relative - base point. Note also that Doxygen's default behavior is to strip the working - directory from relative paths in the generated documentation (see the - ``STRIP_FROM_PATH`` `Doxygen config option - `_ for details). - - If provided, the optional ``comment`` will be passed as the ``COMMENT`` for - the :command:`add_custom_target` command used to create the custom target - internally. - - If ALL is set, the target will be added to the default build target. - - The contents of the generated ``Doxyfile`` can be customized by setting CMake - variables before calling ``doxygen_add_docs()``. Any variable with a name of - the form ``DOXYGEN_`` will have its value substituted for the - corresponding ```` configuration option in the ``Doxyfile``. See the - `Doxygen documentation `_ for the - full list of supported configuration options. - - Some of Doxygen's defaults are overridden to provide more appropriate - behavior for a CMake project. Each of the following will be explicitly set - unless the variable already has a value before ``doxygen_add_docs()`` is - called (with some exceptions noted): - - .. variable:: DOXYGEN_HAVE_DOT - - Set to ``YES`` if the ``dot`` component was requested and it was found, - ``NO`` otherwise. Any existing value of ``DOXYGEN_HAVE_DOT`` is ignored. - - .. variable:: DOXYGEN_DOT_MULTI_TARGETS - - Set to ``YES`` by this module (note that this requires a ``dot`` version - newer than 1.8.10). This option is only meaningful if ``DOXYGEN_HAVE_DOT`` - is also set to ``YES``. - - .. variable:: DOXYGEN_GENERATE_LATEX - - Set to ``NO`` by this module. - - .. variable:: DOXYGEN_WARN_FORMAT - - For Visual Studio based generators, this is set to the form recognized by - the Visual Studio IDE: ``$file($line) : $text``. For all other generators, - Doxygen's default value is not overridden. - - .. variable:: DOXYGEN_PROJECT_NAME - - Populated with the name of the current project (i.e. - :variable:`PROJECT_NAME`). - - .. variable:: DOXYGEN_PROJECT_NUMBER - - Populated with the version of the current project (i.e. - :variable:`PROJECT_VERSION`). - - .. variable:: DOXYGEN_PROJECT_BRIEF - - Populated with the description of the current project (i.e. - :variable:`PROJECT_DESCRIPTION`). - - .. variable:: DOXYGEN_INPUT - - Projects should not set this variable. It will be populated with the set of - files and directories passed to ``doxygen_add_docs()``, thereby providing - consistent behavior with the other built-in commands like - :command:`add_executable`, :command:`add_library` and - :command:`add_custom_target`. If a variable named ``DOXYGEN_INPUT`` is set - by the project, it will be ignored and a warning will be issued. - - .. variable:: DOXYGEN_RECURSIVE - - Set to ``YES`` by this module. - - .. variable:: DOXYGEN_EXCLUDE_PATTERNS - - If the set of inputs includes directories, this variable will specify - patterns used to exclude files from them. The following patterns are added - by ``doxygen_add_docs()`` to ensure CMake-specific files and directories - are not included in the input. If the project sets - ``DOXYGEN_EXCLUDE_PATTERNS``, those contents are merged with these - additional patterns rather than replacing them: - - :: - - */.git/* - */.svn/* - */.hg/* - */CMakeFiles/* - */_CPack_Packages/* - DartConfiguration.tcl - CMakeLists.txt - CMakeCache.txt - - .. variable:: DOXYGEN_OUTPUT_DIRECTORY - - Set to :variable:`CMAKE_CURRENT_BINARY_DIR` by this module. Note that if - the project provides its own value for this and it is a relative path, it - will be converted to an absolute path relative to the current binary - directory. This is necessary because doxygen will normally be run from a - directory within the source tree so that relative source paths work as - expected. If this directory does not exist, it will be recursively created - prior to executing the doxygen commands. - -To change any of these defaults or override any other Doxygen config option, -set relevant variables before calling ``doxygen_add_docs()``. For example: - - .. code-block:: cmake - - set(DOXYGEN_GENERATE_HTML NO) - set(DOXYGEN_GENERATE_MAN YES) - - doxygen_add_docs( - doxygen - ${PROJECT_SOURCE_DIR} - COMMENT "Generate man pages" - ) - -A number of Doxygen config options accept lists of values, but Doxygen requires -them to be separated by whitespace. CMake variables hold lists as a string with -items separated by semi-colons, so a conversion needs to be performed. The -``doxygen_add_docs()`` command specifically checks the following Doxygen config -options and will convert their associated CMake variable's contents into the -required form if set. - -:: - - ABBREVIATE_BRIEF - ALIASES - CITE_BIB_FILES - DIAFILE_DIRS - DOTFILE_DIRS - DOT_FONTPATH - ENABLED_SECTIONS - EXAMPLE_PATH - EXAMPLE_PATTERNS - EXCLUDE - EXCLUDE_PATTERNS - EXCLUDE_SYMBOLS - EXPAND_AS_DEFINED - EXTENSION_MAPPING - EXTRA_PACKAGES - EXTRA_SEARCH_MAPPINGS - FILE_PATTERNS - FILTER_PATTERNS - FILTER_SOURCE_PATTERNS - HTML_EXTRA_FILES - HTML_EXTRA_STYLESHEET - IGNORE_PREFIX - IMAGE_PATH - INCLUDE_FILE_PATTERNS - INCLUDE_PATH - INPUT - LATEX_EXTRA_FILES - LATEX_EXTRA_STYLESHEET - MATHJAX_EXTENSIONS - MSCFILE_DIRS - PLANTUML_INCLUDE_PATH - PREDEFINED - QHP_CUST_FILTER_ATTRS - QHP_SECT_FILTER_ATTRS - STRIP_FROM_INC_PATH - STRIP_FROM_PATH - TAGFILES - TCL_SUBST - -The following single value Doxygen options will be quoted automatically -if they contain at least one space: - -:: - - CHM_FILE - DIA_PATH - DOCBOOK_OUTPUT - DOCSET_FEEDNAME - DOCSET_PUBLISHER_NAME - DOT_FONTNAME - DOT_PATH - EXTERNAL_SEARCH_ID - FILE_VERSION_FILTER - GENERATE_TAGFILE - HHC_LOCATION - HTML_FOOTER - HTML_HEADER - HTML_OUTPUT - HTML_STYLESHEET - INPUT_FILTER - LATEX_FOOTER - LATEX_HEADER - LATEX_OUTPUT - LAYOUT_FILE - MAN_OUTPUT - MAN_SUBDIR - MATHJAX_CODEFILE - MSCGEN_PATH - OUTPUT_DIRECTORY - PERL_PATH - PLANTUML_JAR_PATH - PROJECT_BRIEF - PROJECT_LOGO - PROJECT_NAME - QCH_FILE - QHG_LOCATION - QHP_CUST_FILTER_NAME - QHP_VIRTUAL_FOLDER - RTF_EXTENSIONS_FILE - RTF_OUTPUT - RTF_STYLESHEET_FILE - SEARCHDATA_FILE - USE_MDFILE_AS_MAINPAGE - WARN_FORMAT - WARN_LOGFILE - XML_OUTPUT - -There are situations where it may be undesirable for a particular config option -to be automatically quoted by ``doxygen_add_docs()``, such as ``ALIASES`` which -may need to include its own embedded quoting. The ``DOXYGEN_VERBATIM_VARS`` -variable can be used to specify a list of Doxygen variables (including the -leading ``DOXYGEN_`` prefix) which should not be quoted. The project is then -responsible for ensuring that those variables' values make sense when placed -directly in the Doxygen input file. In the case of list variables, list items -are still separated by spaces, it is only the automatic quoting that is -skipped. For example, the following allows ``doxygen_add_docs()`` to apply -quoting to ``DOXYGEN_PROJECT_BRIEF``, but not each item in the -``DOXYGEN_ALIASES`` list (:ref:`bracket syntax ` can also -be used to make working with embedded quotes easier): - -.. code-block:: cmake - - set(DOXYGEN_PROJECT_BRIEF "String with spaces") - set(DOXYGEN_ALIASES - [[somealias="@some_command param"]] - "anotherAlias=@foobar" - ) - set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES) - -The resultant ``Doxyfile`` will contain the following lines: - -.. code-block:: text - - PROJECT_BRIEF = "String with spaces" - ALIASES = somealias="@some_command param" anotherAlias=@foobar - - -Deprecated Result Variables -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For compatibility with previous versions of CMake, the following variables -are also defined but they are deprecated and should no longer be used: - -.. variable:: DOXYGEN_EXECUTABLE - - The path to the ``doxygen`` command. If projects need to refer to the - ``doxygen`` executable directly, they should use the ``Doxygen::doxygen`` - import target instead. - -.. variable:: DOXYGEN_DOT_FOUND - - True if the ``dot`` executable was found. - -.. variable:: DOXYGEN_DOT_EXECUTABLE - - The path to the ``dot`` command. If projects need to refer to the ``dot`` - executable directly, they should use the ``Doxygen::dot`` import target - instead. - -.. variable:: DOXYGEN_DOT_PATH - - The path to the directory containing the ``dot`` executable as reported in - ``DOXYGEN_DOT_EXECUTABLE``. The path may have forward slashes even on Windows - and is not suitable for direct substitution into a ``Doxyfile.in`` template. - If you need this value, get the :prop_tgt:`IMPORTED_LOCATION` property of the - ``Doxygen::dot`` target and use :command:`get_filename_component` to extract - the directory part of that path. You may also want to consider using - :command:`file(TO_NATIVE_PATH)` to prepare the path for a Doxygen - configuration file. - - -Deprecated Hint Variables -^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. variable:: DOXYGEN_SKIP_DOT - - This variable has no effect for the component form of ``find_package``. - In backward compatibility mode (i.e. without components list) it prevents - the finder module from searching for Graphviz's ``dot`` utility. - -#]=======================================================================] - -cmake_policy(PUSH) -cmake_policy(SET CMP0057 NEW) # if IN_LIST - -# For backwards compatibility support -if(Doxygen_FIND_QUIETLY) - set(DOXYGEN_FIND_QUIETLY TRUE) -endif() - -# ===== Rationale for OS X AppBundle mods below ===== -# With the OS X GUI version, Doxygen likes to be installed to /Applications -# and it contains the doxygen executable in the bundle. In the versions I've -# seen, it is located in Resources, but in general, more often binaries are -# located in MacOS. -# -# NOTE: The official Doxygen.app distributed for OS X uses non-standard -# conventions. Instead of the command-line "doxygen" tool being placed in -# Doxygen.app/Contents/MacOS, "Doxywizard" is placed there instead and -# "doxygen" is placed in Contents/Resources. This is most likely done -# so that something happens when people double-click on the Doxygen.app -# package. Unfortunately, CMake gets confused by this as when it sees the -# bundle it uses "Doxywizard" as the executable to use instead of -# "doxygen". Therefore to work-around this issue we temporarily disable -# the app-bundle feature, just for this CMake module: -# -if(APPLE) - # Save the old setting - set(TEMP_DOXYGEN_SAVE_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE}) - # Disable the App-bundle detection feature - set(CMAKE_FIND_APPBUNDLE "NEVER") -endif() -# FYI: -# In older versions of OS X Doxygen, dot was included with the Doxygen bundle, -# but newer versions require you to download Graphviz.app which contains "dot" -# or use something like homebrew. -# ============== End OSX stuff ================ - -# -# Find Doxygen... -# -macro(_Doxygen_find_doxygen) - find_program( - DOXYGEN_EXECUTABLE - NAMES doxygen - PATHS - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\doxygen_is1;Inno Setup: App Path]/bin" - /Applications/Doxygen.app/Contents/Resources - /Applications/Doxygen.app/Contents/MacOS - /Applications/Utilities/Doxygen.app/Contents/Resources - /Applications/Utilities/Doxygen.app/Contents/MacOS - DOC "Doxygen documentation generation tool (http://www.doxygen.org)" - ) - mark_as_advanced(DOXYGEN_EXECUTABLE) - - if(DOXYGEN_EXECUTABLE) - execute_process( - COMMAND "${DOXYGEN_EXECUTABLE}" --version - OUTPUT_VARIABLE DOXYGEN_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE - RESULT_VARIABLE _Doxygen_version_result - ) - if(_Doxygen_version_result) - message(WARNING "Unable to determine doxygen version: ${_Doxygen_version_result}") - endif() - - # Create an imported target for Doxygen - if(NOT TARGET Doxygen::doxygen) - add_executable(Doxygen::doxygen IMPORTED GLOBAL) - set_target_properties(Doxygen::doxygen PROPERTIES - IMPORTED_LOCATION "${DOXYGEN_EXECUTABLE}" - ) - endif() - endif() -endmacro() - -# -# Find Diagram Editor... -# -macro(_Doxygen_find_dia) - set(_x86 "(x86)") - find_program( - DOXYGEN_DIA_EXECUTABLE - NAMES dia - PATHS - "$ENV{ProgramFiles}/Dia" - "$ENV{ProgramFiles${_x86}}/Dia" - DOC "Diagram Editor tool for use with Doxygen" - ) - mark_as_advanced(DOXYGEN_DIA_EXECUTABLE) - - if(DOXYGEN_DIA_EXECUTABLE) - # The Doxyfile wants the path to the utility, not the entire path - # including file name - get_filename_component(DOXYGEN_DIA_PATH - "${DOXYGEN_DIA_EXECUTABLE}" - DIRECTORY) - if(WIN32) - file(TO_NATIVE_PATH "${DOXYGEN_DIA_PATH}" DOXYGEN_DIA_PATH) - endif() - - # Create an imported target for component - if(NOT TARGET Doxygen::dia) - add_executable(Doxygen::dia IMPORTED GLOBAL) - set_target_properties(Doxygen::dia PROPERTIES - IMPORTED_LOCATION "${DOXYGEN_DIA_EXECUTABLE}" - ) - endif() - endif() - - unset(_x86) -endmacro() - -# -# Find Graphviz Dot... -# -macro(_Doxygen_find_dot) - set(_x86 "(x86)") - file( - GLOB _Doxygen_GRAPHVIZ_BIN_DIRS - "$ENV{ProgramFiles}/Graphviz*/bin" - "$ENV{ProgramFiles${_x86}}/Graphviz*/bin" - ) - find_program( - DOXYGEN_DOT_EXECUTABLE - NAMES dot - PATHS - ${_Doxygen_GRAPHVIZ_BIN_DIRS} - "$ENV{ProgramFiles}/ATT/Graphviz/bin" - "C:/Program Files/ATT/Graphviz/bin" - [HKEY_LOCAL_MACHINE\\SOFTWARE\\ATT\\Graphviz;InstallPath]/bin - /Applications/Graphviz.app/Contents/MacOS - /Applications/Utilities/Graphviz.app/Contents/MacOS - /Applications/Doxygen.app/Contents/Resources - /Applications/Doxygen.app/Contents/MacOS - /Applications/Utilities/Doxygen.app/Contents/Resources - /Applications/Utilities/Doxygen.app/Contents/MacOS - DOC "Dot tool for use with Doxygen" - ) - mark_as_advanced(DOXYGEN_DOT_EXECUTABLE) - - if(DOXYGEN_DOT_EXECUTABLE) - # The Doxyfile wants the path to the utility, not the entire path - # including file name - get_filename_component(DOXYGEN_DOT_PATH - "${DOXYGEN_DOT_EXECUTABLE}" - DIRECTORY) - if(WIN32) - file(TO_NATIVE_PATH "${DOXYGEN_DOT_PATH}" DOXYGEN_DOT_PATH) - endif() - - # Create an imported target for component - if(NOT TARGET Doxygen::dot) - add_executable(Doxygen::dot IMPORTED GLOBAL) - set_target_properties(Doxygen::dot PROPERTIES - IMPORTED_LOCATION "${DOXYGEN_DOT_EXECUTABLE}" - ) - endif() - endif() - - unset(_Doxygen_GRAPHVIZ_BIN_DIRS) - unset(_x86) -endmacro() - -# -# Find Message Sequence Chart... -# -macro(_Doxygen_find_mscgen) - set(_x86 "(x86)") - find_program( - DOXYGEN_MSCGEN_EXECUTABLE - NAMES mscgen - PATHS - "$ENV{ProgramFiles}/Mscgen" - "$ENV{ProgramFiles${_x86}}/Mscgen" - DOC "Message sequence chart tool for use with Doxygen" - ) - mark_as_advanced(DOXYGEN_MSCGEN_EXECUTABLE) - - if(DOXYGEN_MSCGEN_EXECUTABLE) - # The Doxyfile wants the path to the utility, not the entire path - # including file name - get_filename_component(DOXYGEN_MSCGEN_PATH - "${DOXYGEN_MSCGEN_EXECUTABLE}" - DIRECTORY) - if(WIN32) - file(TO_NATIVE_PATH "${DOXYGEN_MSCGEN_PATH}" DOXYGEN_MSCGEN_PATH) - endif() - - # Create an imported target for component - if(NOT TARGET Doxygen::mscgen) - add_executable(Doxygen::mscgen IMPORTED GLOBAL) - set_target_properties(Doxygen::mscgen PROPERTIES - IMPORTED_LOCATION "${DOXYGEN_MSCGEN_EXECUTABLE}" - ) - endif() - endif() - - unset(_x86) -endmacro() - -# Make sure `doxygen` is one of the components to find -set(_Doxygen_keep_backward_compat FALSE) -if(NOT Doxygen_FIND_COMPONENTS) - # Search at least for `doxygen` executable - set(Doxygen_FIND_COMPONENTS doxygen) - # Preserve backward compatibility: - # search for `dot` also if `DOXYGEN_SKIP_DOT` is not explicitly disable this. - if(NOT DOXYGEN_SKIP_DOT) - list(APPEND Doxygen_FIND_COMPONENTS dot) - endif() - set(_Doxygen_keep_backward_compat TRUE) -elseif(NOT doxygen IN_LIST Doxygen_FIND_COMPONENTS) - list(INSERT Doxygen_FIND_COMPONENTS 0 doxygen) -endif() - -# -# Find all requested components of Doxygen... -# -foreach(_comp IN LISTS Doxygen_FIND_COMPONENTS) - if(_comp STREQUAL "doxygen") - _Doxygen_find_doxygen() - elseif(_comp STREQUAL "dia") - _Doxygen_find_dia() - elseif(_comp STREQUAL "dot") - _Doxygen_find_dot() - elseif(_comp STREQUAL "mscgen") - _Doxygen_find_mscgen() - else() - message(WARNING "${_comp} is not a valid Doxygen component") - set(Doxygen_${_comp}_FOUND FALSE) - continue() - endif() - - if(TARGET Doxygen::${_comp}) - set(Doxygen_${_comp}_FOUND TRUE) - else() - set(Doxygen_${_comp}_FOUND FALSE) - endif() -endforeach() -unset(_comp) - -# Verify find results -include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) -find_package_handle_standard_args( - Doxygen - REQUIRED_VARS DOXYGEN_EXECUTABLE - VERSION_VAR DOXYGEN_VERSION - HANDLE_COMPONENTS -) - -# -# Backwards compatibility... -# -if(APPLE) - # Restore the old app-bundle setting - set(CMAKE_FIND_APPBUNDLE ${TEMP_DOXYGEN_SAVE_CMAKE_FIND_APPBUNDLE}) -endif() - -# Maintain the _FOUND variables as "YES" or "NO" for backwards -# compatibility. This allows people to substitute them directly into -# Doxyfile with configure_file(). -if(DOXYGEN_FOUND) - set(DOXYGEN_FOUND "YES") -else() - set(DOXYGEN_FOUND "NO") -endif() -if(_Doxygen_keep_backward_compat) - if(Doxygen_dot_FOUND) - set(DOXYGEN_DOT_FOUND "YES") - else() - set(DOXYGEN_DOT_FOUND "NO") - endif() - - # For backwards compatibility support for even older CMake versions - set(DOXYGEN ${DOXYGEN_EXECUTABLE}) - set(DOT ${DOXYGEN_DOT_EXECUTABLE}) - - # No need to keep any backward compatibility for `DOXYGEN_MSCGEN_XXX` - # and `DOXYGEN_DIA_XXX` since they were not supported before component - # support was added -endif() -unset(_Doxygen_keep_backward_compat) - -# -# Allow full control of Doxygen from CMakeLists.txt -# - -# Prepare a template Doxyfile and Doxygen's default values CMake file -if(TARGET Doxygen::doxygen) - # If doxygen was found, use it to generate a minimal default Doxyfile. - # We will delete this file after we have finished using it below to - # generate the other files that doxygen_add_docs() will use. - set(_Doxygen_tpl "${CMAKE_BINARY_DIR}/CMakeDoxyfile.tpl") - execute_process( - COMMAND "${DOXYGEN_EXECUTABLE}" -s -g "${_Doxygen_tpl}" - OUTPUT_QUIET - RESULT_VARIABLE _Doxygen_tpl_result - ) - if(_Doxygen_tpl_result) - message(FATAL_ERROR - "Unable to generate Doxyfile template: ${_Doxygen_tpl_result}") - elseif(NOT EXISTS "${_Doxygen_tpl}") - message(FATAL_ERROR - "Doxygen has failed to generate a Doxyfile template") - endif() - - # Write a do-not-edit header to files we are going to generate... - set(_Doxygen_dne_header -[[ -# -# DO NOT EDIT! THIS FILE WAS GENERATED BY CMAKE! -# - -]] - ) - # We only need one copy of these across the whole build, since their - # content is only dependent on the version of Doxygen being used. Therefore - # we always put them at the top of the build tree so that they are in a - # predictable location. - set(_doxyfile_in "${CMAKE_BINARY_DIR}/CMakeDoxyfile.in") - set(_doxyfile_defaults "${CMAKE_BINARY_DIR}/CMakeDoxygenDefaults.cmake") - - file(WRITE "${_doxyfile_in}" ${_Doxygen_dne_header}) - file(WRITE "${_doxyfile_defaults}" ${_Doxygen_dne_header}) - - # Get strings containing a configuration key from the template Doxyfile - # we obtained from this version of Doxygen. Because some options are split - # across multiple lines by ending lines with backslashes, we cannot just - # use file(STRINGS...) with a REGEX. Instead, read lines without a REGEX - # so that file(STRINGS...) handles the trailing backslash as a line - # continuation. It stores multi-lines as lists, so we then have to replace - # the ";" list separator with backslashed newlines again so that we get the - # original content stored back as the value part. - file(STRINGS "${_Doxygen_tpl}" _file_lines) - unset(_Doxygen_tpl_params) - foreach(_line IN LISTS _file_lines) - if(_line MATCHES "([A-Z][A-Z0-9_]+)( *=)(.*)") - set(_key "${CMAKE_MATCH_1}") - set(_eql "${CMAKE_MATCH_2}") - set(_value "${CMAKE_MATCH_3}") - string(REPLACE "\\" "\\\\" _value "${_value}") - string(REPLACE ";" "\\\n" _value "${_value}") - list(APPEND _Doxygen_tpl_params "${_key}${_eql}${_value}") - endif() - endforeach() - - # Build up a Doxyfile that provides @configVar@ substitutions for each - # Doxygen config option as well as a separate CMake script which provides - # the default value for each of those options if the project doesn't supply - # them. Each config option will support substitution of a CMake variable - # of the same name except with DOXYGEN_ prepended. - foreach(_Doxygen_param IN LISTS _Doxygen_tpl_params) - if(_Doxygen_param MATCHES "([A-Z][A-Z0-9_]+)( *)=( (.*))?") - # Ok, this is a config key with a value - if(CMAKE_MATCH_COUNT EQUAL 4) - file(APPEND "${_doxyfile_in}" - "${CMAKE_MATCH_1}${CMAKE_MATCH_2}= @DOXYGEN_${CMAKE_MATCH_1}@\n") - # Remove the backslashes we had to preserve to handle newlines - string(REPLACE "\\\n" "\n" _value "${CMAKE_MATCH_4}") - file(APPEND "${_doxyfile_defaults}" -"if(NOT DEFINED DOXYGEN_${CMAKE_MATCH_1}) - set(DOXYGEN_${CMAKE_MATCH_1} ${_value}) -endif() -") - # Ok, this is a config key with empty default value - elseif(CMAKE_MATCH_COUNT EQUAL 2) - file(APPEND "${_doxyfile_in}" - "${CMAKE_MATCH_1}${CMAKE_MATCH_2}= @DOXYGEN_${CMAKE_MATCH_1}@\n") - else() - message(AUTHOR_WARNING -"Unexpected line format! Code review required!\nFault line: ${_Doxygen_param}") - endif() - else() - message(AUTHOR_WARNING -"Unexpected line format! Code review required!\nFault line: ${_Doxygen_param}") - endif() - endforeach() - - # Ok, dumped defaults are not needed anymore... - file(REMOVE "${_Doxygen_tpl}") - - unset(_Doxygen_param) - unset(_Doxygen_tpl_params) - unset(_Doxygen_dne_header) - unset(_Doxygen_tpl) - -endif() - -function(doxygen_quote_value VARIABLE) - # Quote a value of the given variable if: - # - VARIABLE parameter was really given - # - the variable it names is defined and is not present in the list - # specified by DOXYGEN_VERBATIM_VARS (if set) - # - the value of the named variable isn't already quoted - # - the value has spaces - if(VARIABLE AND DEFINED ${VARIABLE} AND - NOT ${VARIABLE} MATCHES "^\".* .*\"$" AND ${VARIABLE} MATCHES " " AND - NOT (DEFINED DOXYGEN_VERBATIM_VARS AND - "${VARIABLE}" IN_LIST DOXYGEN_VERBATIM_VARS)) - set(${VARIABLE} "\"${${VARIABLE}}\"" PARENT_SCOPE) - endif() -endfunction() - -function(doxygen_list_to_quoted_strings LIST_VARIABLE) - if(LIST_VARIABLE AND DEFINED ${LIST_VARIABLE}) - unset(_inputs) - unset(_sep) - unset(_verbatim) - # Have to test if list items should be treated as verbatim here - # because we lose the variable name when we pass just one list item - # to doxygen_quote_value() below - if(DEFINED DOXYGEN_VERBATIM_VARS AND - "${LIST_VARIABLE}" IN_LIST DOXYGEN_VERBATIM_VARS) - set(_verbatim True) - endif() - foreach(_in IN LISTS ${LIST_VARIABLE}) - if(NOT _verbatim) - doxygen_quote_value(_in) - endif() - string(APPEND _inputs "${_sep}${_in}") - set(_sep " ") - endforeach() - set(${LIST_VARIABLE} "${_inputs}" PARENT_SCOPE) - endif() -endfunction() - -function(doxygen_add_docs targetName) - set(_options ALL) - set(_one_value_args WORKING_DIRECTORY COMMENT) - set(_multi_value_args) - cmake_parse_arguments(_args - "${_options}" - "${_one_value_args}" - "${_multi_value_args}" - ${ARGN}) - - if(NOT _args_COMMENT) - set(_args_COMMENT "Generate API documentation for ${targetName}") - endif() - - if(NOT _args_WORKING_DIRECTORY) - set(_args_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") - endif() - - if(DEFINED DOXYGEN_INPUT) - message(WARNING -"DOXYGEN_INPUT is set but it will be ignored. Pass the files and directories \ -directly to the doxygen_add_docs() command instead.") - endif() - set(DOXYGEN_INPUT ${_args_UNPARSED_ARGUMENTS}) - - if(NOT TARGET Doxygen::doxygen) - message(FATAL_ERROR "Doxygen was not found, needed by \ -doxygen_add_docs() for target ${targetName}") - endif() - - # If not already defined, set some relevant defaults based on the - # assumption that the documentation is for the whole project. Details - # specified in the project() command will be used to populate a number of - # these defaults. - - if(NOT DEFINED DOXYGEN_PROJECT_NAME) - # The PROJECT_NAME tag is a single word (or a sequence of words - # surrounded by double-quotes, unless you are using Doxywizard) that - # should identify the project for which the documentation is generated. - # This name is used in the title of most generated pages and in a few - # other places. The default value is: My Project. - set(DOXYGEN_PROJECT_NAME ${PROJECT_NAME}) - endif() - - if(NOT DEFINED DOXYGEN_PROJECT_NUMBER) - # The PROJECT_NUMBER tag can be used to enter a project or revision - # number. This could be handy for archiving the generated documentation - # or if some version control system is used. - set(DOXYGEN_PROJECT_NUMBER ${PROJECT_VERSION}) - endif() - - if(NOT DEFINED DOXYGEN_PROJECT_BRIEF) - # Using the PROJECT_BRIEF tag one can provide an optional one line - # description for a project that appears at the top of each page and - # should give viewer a quick idea about the purpose of the project. - # Keep the description short. - set(DOXYGEN_PROJECT_BRIEF "${PROJECT_DESCRIPTION}") - endif() - - if(NOT DEFINED DOXYGEN_RECURSIVE) - # The RECURSIVE tag can be used to specify whether or not - # subdirectories should be searched for input files as well. CMake - # projects generally evolve to span multiple directories, so it makes - # more sense for this to be on by default. Doxygen's default value - # has this setting turned off, so we override it. - set(DOXYGEN_RECURSIVE YES) - endif() - - if(NOT DEFINED DOXYGEN_OUTPUT_DIRECTORY) - # The OUTPUT_DIRECTORY tag is used to specify the (relative or - # absolute) path into which the generated documentation will be - # written. If a relative path is used, Doxygen will interpret it as - # being relative to the location where doxygen was started, but we need - # to run Doxygen in the source tree so that relative input paths work - # intuitively. Therefore, we ensure that the output directory is always - # an absolute path and if the project provided a relative path, we - # treat it as relative to the current BINARY directory so that output - # is not generated inside the source tree. - set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - elseif(NOT IS_ABSOLUTE "${DOXYGEN_OUTPUT_DIRECTORY}") - get_filename_component(DOXYGEN_OUTPUT_DIRECTORY - "${DOXYGEN_OUTPUT_DIRECTORY}" - ABSOLUTE - BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}") - endif() - - if(NOT DEFINED DOXYGEN_HAVE_DOT) - # If you set the HAVE_DOT tag to YES then doxygen will assume the dot - # tool is available from the path. This tool is part of Graphviz (see: - # http://www.graphviz.org/), a graph visualization toolkit from AT&T - # and Lucent Bell Labs. The other options in this section have no - # effect if this option is set to NO. - # Doxygen's default value is: NO. - if(Doxygen_dot_FOUND) - set(DOXYGEN_HAVE_DOT "YES") - else() - set(DOXYGEN_HAVE_DOT "NO") - endif() - endif() - - if(NOT DEFINED DOXYGEN_DOT_MULTI_TARGETS) - # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate - # multiple output files in one run (i.e. multiple -o and -T options on - # the command line). This makes dot run faster, but since only newer - # versions of dot (>1.8.10) support this, Doxygen disables this feature - # by default. - # This tag requires that the tag HAVE_DOT is set to YES. - set(DOXYGEN_DOT_MULTI_TARGETS YES) - endif() - - if(NOT DEFINED DOXYGEN_GENERATE_LATEX) - # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX - # output. We only want the HTML output enabled by default, so we turn - # this off if the project hasn't specified it. - set(DOXYGEN_GENERATE_LATEX NO) - endif() - - if(NOT DEFINED DOXYGEN_WARN_FORMAT) - if(CMAKE_VS_MSBUILD_COMMAND OR CMAKE_VS_DEVENV_COMMAND) - # The WARN_FORMAT tag determines the format of the warning messages - # that doxygen can produce. The string should contain the $file, - # $line and $text tags, which will be replaced by the file and line - # number from which the warning originated and the warning text. - # Optionally, the format may contain $version, which will be - # replaced by the version of the file (if it could be obtained via - # FILE_VERSION_FILTER). - # Doxygen's default value is: $file:$line: $text - set(DOXYGEN_WARN_FORMAT "$file($line) : $text ") - endif() - endif() - - if(DEFINED DOXYGEN_WARN_LOGFILE AND NOT IS_ABSOLUTE "${DOXYGEN_WARN_LOGFILE}") - # The WARN_LOGFILE tag can be used to specify a file to which warning and error - # messages should be written. If left blank the output is written to standard - # error (stderr). - get_filename_component(DOXYGEN_WARN_LOGFILE - "${DOXYGEN_WARN_LOGFILE}" - ABSOLUTE - BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}") - endif() - - # Any files from the INPUT that match any of the EXCLUDE_PATTERNS will be - # excluded from the set of input files. We provide some additional patterns - # to prevent commonly unwanted things from CMake builds being pulled in. - # - # Note that the wildcards are matched against the file with absolute path, - # so to exclude all test directories for example use the pattern */test/* - list( - APPEND - DOXYGEN_EXCLUDE_PATTERNS - "*/.git/*" - "*/.svn/*" - "*/.hg/*" - "*/CMakeFiles/*" - "*/_CPack_Packages/*" - "DartConfiguration.tcl" - "CMakeLists.txt" - "CMakeCache.txt" - ) - - # Now bring in Doxgen's defaults for those things the project has not - # already set and we have not provided above - include("${CMAKE_BINARY_DIR}/CMakeDoxygenDefaults.cmake" OPTIONAL) - - # Cleanup built HTMLs on "make clean" - # TODO Any other dirs? - if(DOXYGEN_GENERATE_HTML) - if(IS_ABSOLUTE "${DOXYGEN_HTML_OUTPUT}") - set(_args_clean_html_dir "${DOXYGEN_HTML_OUTPUT}") - else() - set(_args_clean_html_dir - "${DOXYGEN_OUTPUT_DIRECTORY}/${DOXYGEN_HTML_OUTPUT}") - endif() - set_property(DIRECTORY APPEND PROPERTY - ADDITIONAL_MAKE_CLEAN_FILES "${_args_clean_html_dir}") - endif() - - # Build up a list of files we can identify from the inputs so we can list - # them as SOURCES in the custom target (makes them display in IDEs). We - # must do this before we transform the various DOXYGEN_... variables below - # because we need to process DOXYGEN_INPUT as a list first. - unset(_sources) - foreach(_item IN LISTS DOXYGEN_INPUT) - get_filename_component(_abs_item "${_item}" ABSOLUTE - BASE_DIR "${_args_WORKING_DIRECTORY}") - if(EXISTS "${_abs_item}" AND - NOT IS_DIRECTORY "${_abs_item}" AND - NOT IS_SYMLINK "${_abs_item}") - list(APPEND _sources "${_abs_item}") - endif() - endforeach() - if(_sources) - list(INSERT _sources 0 SOURCES) - endif() - - # Transform known list type options into space separated strings. - set(_doxygen_list_options - ABBREVIATE_BRIEF - ALIASES - CITE_BIB_FILES - DIAFILE_DIRS - DOTFILE_DIRS - DOT_FONTPATH - ENABLED_SECTIONS - EXAMPLE_PATH - EXAMPLE_PATTERNS - EXCLUDE - EXCLUDE_PATTERNS - EXCLUDE_SYMBOLS - EXPAND_AS_DEFINED - EXTENSION_MAPPING - EXTRA_PACKAGES - EXTRA_SEARCH_MAPPINGS - FILE_PATTERNS - FILTER_PATTERNS - FILTER_SOURCE_PATTERNS - HTML_EXTRA_FILES - HTML_EXTRA_STYLESHEET - IGNORE_PREFIX - IMAGE_PATH - INCLUDE_FILE_PATTERNS - INCLUDE_PATH - INPUT - LATEX_EXTRA_FILES - LATEX_EXTRA_STYLESHEET - MATHJAX_EXTENSIONS - MSCFILE_DIRS - PLANTUML_INCLUDE_PATH - PREDEFINED - QHP_CUST_FILTER_ATTRS - QHP_SECT_FILTER_ATTRS - STRIP_FROM_INC_PATH - STRIP_FROM_PATH - TAGFILES - TCL_SUBST - ) - foreach(_item IN LISTS _doxygen_list_options) - doxygen_list_to_quoted_strings(DOXYGEN_${_item}) - endforeach() - - # Transform known single value variables which may contain spaces, such as - # paths or description strings. - set(_doxygen_quoted_options - CHM_FILE - DIA_PATH - DOCBOOK_OUTPUT - DOCSET_FEEDNAME - DOCSET_PUBLISHER_NAME - DOT_FONTNAME - DOT_PATH - EXTERNAL_SEARCH_ID - FILE_VERSION_FILTER - GENERATE_TAGFILE - HHC_LOCATION - HTML_FOOTER - HTML_HEADER - HTML_OUTPUT - HTML_STYLESHEET - INPUT_FILTER - LATEX_FOOTER - LATEX_HEADER - LATEX_OUTPUT - LAYOUT_FILE - MAN_OUTPUT - MAN_SUBDIR - MATHJAX_CODEFILE - MSCGEN_PATH - OUTPUT_DIRECTORY - PERL_PATH - PLANTUML_JAR_PATH - PROJECT_BRIEF - PROJECT_LOGO - PROJECT_NAME - QCH_FILE - QHG_LOCATION - QHP_CUST_FILTER_NAME - QHP_VIRTUAL_FOLDER - RTF_EXTENSIONS_FILE - RTF_OUTPUT - RTF_STYLESHEET_FILE - SEARCHDATA_FILE - USE_MDFILE_AS_MAINPAGE - WARN_FORMAT - WARN_LOGFILE - XML_OUTPUT - ) - - # Store the unmodified value of DOXYGEN_OUTPUT_DIRECTORY prior to invoking - # doxygen_quote_value() below. This will mutate the string specifically for - # consumption by Doxygen's config file, which we do not want when we use it - # later in the custom target's commands. - set( _original_doxygen_output_dir ${DOXYGEN_OUTPUT_DIRECTORY} ) - - foreach(_item IN LISTS _doxygen_quoted_options) - doxygen_quote_value(DOXYGEN_${_item}) - endforeach() - - # Prepare doxygen configuration file - set(_doxyfile_template "${CMAKE_BINARY_DIR}/CMakeDoxyfile.in") - set(_target_doxyfile "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.${targetName}") - configure_file("${_doxyfile_template}" "${_target_doxyfile}") - - unset(_all) - if(${_args_ALL}) - set(_all ALL) - endif() - - # Add the target - add_custom_target( ${targetName} ${_all} VERBATIM - COMMAND ${CMAKE_COMMAND} -E make_directory ${_original_doxygen_output_dir} - COMMAND "${DOXYGEN_EXECUTABLE}" "${_target_doxyfile}" - WORKING_DIRECTORY "${_args_WORKING_DIRECTORY}" - DEPENDS "${_target_doxyfile}" - COMMENT "${_args_COMMENT}" - ${_sources} - ) - -endfunction() - -cmake_policy(POP) diff --git a/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake b/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake deleted file mode 100644 index 1722d6aafbf..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake +++ /dev/null @@ -1,386 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindPackageHandleStandardArgs ------------------------------ - -This module provides a function intended to be used in :ref:`Find Modules` -implementing :command:`find_package()` calls. It handles the -``REQUIRED``, ``QUIET`` and version-related arguments of ``find_package``. -It also sets the ``_FOUND`` variable. The package is -considered found if all variables listed contain valid results, e.g. -valid filepaths. - -.. command:: find_package_handle_standard_args - - There are two signatures:: - - find_package_handle_standard_args( - (DEFAULT_MSG|) - ... - ) - - find_package_handle_standard_args( - [FOUND_VAR ] - [REQUIRED_VARS ...] - [VERSION_VAR ] - [HANDLE_COMPONENTS] - [CONFIG_MODE] - [FAIL_MESSAGE ] - ) - - The ``_FOUND`` variable will be set to ``TRUE`` if all - the variables ``...`` are valid and any optional - constraints are satisfied, and ``FALSE`` otherwise. A success or - failure message may be displayed based on the results and on - whether the ``REQUIRED`` and/or ``QUIET`` option was given to - the :command:`find_package` call. - - The options are: - - ``(DEFAULT_MSG|)`` - In the simple signature this specifies the failure message. - Use ``DEFAULT_MSG`` to ask for a default message to be computed - (recommended). Not valid in the full signature. - - ``FOUND_VAR `` - Obsolete. Specifies either ``_FOUND`` or - ``_FOUND`` as the result variable. This exists only - for compatibility with older versions of CMake and is now ignored. - Result variables of both names are always set for compatibility. - - ``REQUIRED_VARS ...`` - Specify the variables which are required for this package. - These may be named in the generated failure message asking the - user to set the missing variable values. Therefore these should - typically be cache entries such as ``FOO_LIBRARY`` and not output - variables like ``FOO_LIBRARIES``. - - ``VERSION_VAR `` - Specify the name of a variable that holds the version of the package - that has been found. This version will be checked against the - (potentially) specified required version given to the - :command:`find_package` call, including its ``EXACT`` option. - The default messages include information about the required - version and the version which has been actually found, both - if the version is ok or not. - - ``HANDLE_COMPONENTS`` - Enable handling of package components. In this case, the command - will report which components have been found and which are missing, - and the ``_FOUND`` variable will be set to ``FALSE`` - if any of the required components (i.e. not the ones listed after - the ``OPTIONAL_COMPONENTS`` option of :command:`find_package`) are - missing. - - ``CONFIG_MODE`` - Specify that the calling find module is a wrapper around a - call to ``find_package( NO_MODULE)``. This implies - a ``VERSION_VAR`` value of ``_VERSION``. The command - will automatically check whether the package configuration file - was found. - - ``FAIL_MESSAGE `` - Specify a custom failure message instead of using the default - generated message. Not recommended. - -Example for the simple signature: - -.. code-block:: cmake - - find_package_handle_standard_args(LibXml2 DEFAULT_MSG - LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) - -The ``LibXml2`` package is considered to be found if both -``LIBXML2_LIBRARY`` and ``LIBXML2_INCLUDE_DIR`` are valid. -Then also ``LibXml2_FOUND`` is set to ``TRUE``. If it is not found -and ``REQUIRED`` was used, it fails with a -:command:`message(FATAL_ERROR)`, independent whether ``QUIET`` was -used or not. If it is found, success will be reported, including -the content of the first ````. On repeated CMake runs, -the same message will not be printed again. - -Example for the full signature: - -.. code-block:: cmake - - find_package_handle_standard_args(LibArchive - REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR - VERSION_VAR LibArchive_VERSION) - -In this case, the ``LibArchive`` package is considered to be found if -both ``LibArchive_LIBRARY`` and ``LibArchive_INCLUDE_DIR`` are valid. -Also the version of ``LibArchive`` will be checked by using the version -contained in ``LibArchive_VERSION``. Since no ``FAIL_MESSAGE`` is given, -the default messages will be printed. - -Another example for the full signature: - -.. code-block:: cmake - - find_package(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4) - find_package_handle_standard_args(Automoc4 CONFIG_MODE) - -In this case, a ``FindAutmoc4.cmake`` module wraps a call to -``find_package(Automoc4 NO_MODULE)`` and adds an additional search -directory for ``automoc4``. Then the call to -``find_package_handle_standard_args`` produces a proper success/failure -message. -#]=======================================================================] - -include(${CMAKE_CURRENT_LIST_DIR}/FindPackageMessage.cmake) - -# internal helper macro -macro(_FPHSA_FAILURE_MESSAGE _msg) - if (${_NAME}_FIND_REQUIRED) - message(FATAL_ERROR "${_msg}") - else () - if (NOT ${_NAME}_FIND_QUIETLY) - message(STATUS "${_msg}") - endif () - endif () -endmacro() - - -# internal helper macro to generate the failure message when used in CONFIG_MODE: -macro(_FPHSA_HANDLE_FAILURE_CONFIG_MODE) - # _CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found: - if(${_NAME}_CONFIG) - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing:${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})") - else() - # If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version. - # List them all in the error message: - if(${_NAME}_CONSIDERED_CONFIGS) - set(configsText "") - list(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount) - math(EXPR configsCount "${configsCount} - 1") - foreach(currentConfigIndex RANGE ${configsCount}) - list(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename) - list(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version) - string(APPEND configsText " ${filename} (version ${version})\n") - endforeach() - if (${_NAME}_NOT_FOUND_MESSAGE) - string(APPEND configsText " Reason given by package: ${${_NAME}_NOT_FOUND_MESSAGE}\n") - endif() - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:\n${configsText}") - - else() - # Simple case: No Config-file was found at all: - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}") - endif() - endif() -endmacro() - - -function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG) - -# Set up the arguments for `cmake_parse_arguments`. - set(options CONFIG_MODE HANDLE_COMPONENTS) - set(oneValueArgs FAIL_MESSAGE VERSION_VAR FOUND_VAR) - set(multiValueArgs REQUIRED_VARS) - -# Check whether we are in 'simple' or 'extended' mode: - set(_KEYWORDS_FOR_EXTENDED_MODE ${options} ${oneValueArgs} ${multiValueArgs} ) - list(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX) - - if(${INDEX} EQUAL -1) - set(FPHSA_FAIL_MESSAGE ${_FIRST_ARG}) - set(FPHSA_REQUIRED_VARS ${ARGN}) - set(FPHSA_VERSION_VAR) - else() - cmake_parse_arguments(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${_FIRST_ARG} ${ARGN}) - - if(FPHSA_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"") - endif() - - if(NOT FPHSA_FAIL_MESSAGE) - set(FPHSA_FAIL_MESSAGE "DEFAULT_MSG") - endif() - - # In config-mode, we rely on the variable _CONFIG, which is set by find_package() - # when it successfully found the config-file, including version checking: - if(FPHSA_CONFIG_MODE) - list(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG) - list(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS) - set(FPHSA_VERSION_VAR ${_NAME}_VERSION) - endif() - - if(NOT FPHSA_REQUIRED_VARS) - message(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()") - endif() - endif() - -# now that we collected all arguments, process them - - if("x${FPHSA_FAIL_MESSAGE}" STREQUAL "xDEFAULT_MSG") - set(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}") - endif() - - list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR) - - string(TOUPPER ${_NAME} _NAME_UPPER) - string(TOLOWER ${_NAME} _NAME_LOWER) - - if(FPHSA_FOUND_VAR) - if(FPHSA_FOUND_VAR MATCHES "^${_NAME}_FOUND$" OR FPHSA_FOUND_VAR MATCHES "^${_NAME_UPPER}_FOUND$") - set(_FOUND_VAR ${FPHSA_FOUND_VAR}) - else() - message(FATAL_ERROR "The argument for FOUND_VAR is \"${FPHSA_FOUND_VAR}\", but only \"${_NAME}_FOUND\" and \"${_NAME_UPPER}_FOUND\" are valid names.") - endif() - else() - set(_FOUND_VAR ${_NAME_UPPER}_FOUND) - endif() - - # collect all variables which were not found, so they can be printed, so the - # user knows better what went wrong (#6375) - set(MISSING_VARS "") - set(DETAILS "") - # check if all passed variables are valid - set(FPHSA_FOUND_${_NAME} TRUE) - foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS}) - if(NOT ${_CURRENT_VAR}) - set(FPHSA_FOUND_${_NAME} FALSE) - string(APPEND MISSING_VARS " ${_CURRENT_VAR}") - else() - string(APPEND DETAILS "[${${_CURRENT_VAR}}]") - endif() - endforeach() - if(FPHSA_FOUND_${_NAME}) - set(${_NAME}_FOUND TRUE) - set(${_NAME_UPPER}_FOUND TRUE) - else() - set(${_NAME}_FOUND FALSE) - set(${_NAME_UPPER}_FOUND FALSE) - endif() - - # component handling - unset(FOUND_COMPONENTS_MSG) - unset(MISSING_COMPONENTS_MSG) - - if(FPHSA_HANDLE_COMPONENTS) - foreach(comp ${${_NAME}_FIND_COMPONENTS}) - if(${_NAME}_${comp}_FOUND) - - if(NOT DEFINED FOUND_COMPONENTS_MSG) - set(FOUND_COMPONENTS_MSG "found components: ") - endif() - string(APPEND FOUND_COMPONENTS_MSG " ${comp}") - - else() - - if(NOT DEFINED MISSING_COMPONENTS_MSG) - set(MISSING_COMPONENTS_MSG "missing components: ") - endif() - string(APPEND MISSING_COMPONENTS_MSG " ${comp}") - - if(${_NAME}_FIND_REQUIRED_${comp}) - set(${_NAME}_FOUND FALSE) - string(APPEND MISSING_VARS " ${comp}") - endif() - - endif() - endforeach() - set(COMPONENT_MSG "${FOUND_COMPONENTS_MSG} ${MISSING_COMPONENTS_MSG}") - string(APPEND DETAILS "[c${COMPONENT_MSG}]") - endif() - - # version handling: - set(VERSION_MSG "") - set(VERSION_OK TRUE) - - # check with DEFINED here as the requested or found version may be "0" - if (DEFINED ${_NAME}_FIND_VERSION) - if(DEFINED ${FPHSA_VERSION_VAR}) - set(_FOUND_VERSION ${${FPHSA_VERSION_VAR}}) - - if(${_NAME}_FIND_VERSION_EXACT) # exact version required - # count the dots in the version string - string(REGEX REPLACE "[^.]" "" _VERSION_DOTS "${_FOUND_VERSION}") - # add one dot because there is one dot more than there are components - string(LENGTH "${_VERSION_DOTS}." _VERSION_DOTS) - if (_VERSION_DOTS GREATER ${_NAME}_FIND_VERSION_COUNT) - # Because of the C++ implementation of find_package() ${_NAME}_FIND_VERSION_COUNT - # is at most 4 here. Therefore a simple lookup table is used. - if (${_NAME}_FIND_VERSION_COUNT EQUAL 1) - set(_VERSION_REGEX "[^.]*") - elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 2) - set(_VERSION_REGEX "[^.]*\\.[^.]*") - elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 3) - set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*") - else () - set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*\\.[^.]*") - endif () - string(REGEX REPLACE "^(${_VERSION_REGEX})\\..*" "\\1" _VERSION_HEAD "${_FOUND_VERSION}") - unset(_VERSION_REGEX) - if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _VERSION_HEAD) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")") - endif () - unset(_VERSION_HEAD) - else () - if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _FOUND_VERSION) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")") - endif () - endif () - unset(_VERSION_DOTS) - - else() # minimum version specified: - if (${_NAME}_FIND_VERSION VERSION_GREATER _FOUND_VERSION) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable version \"${_FOUND_VERSION}\", minimum required is \"${${_NAME}_FIND_VERSION}\")") - endif () - endif() - - else() - - # if the package was not found, but a version was given, add that to the output: - if(${_NAME}_FIND_VERSION_EXACT) - set(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")") - else() - set(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")") - endif() - - endif() - else () - # Check with DEFINED as the found version may be 0. - if(DEFINED ${FPHSA_VERSION_VAR}) - set(VERSION_MSG "(found version \"${${FPHSA_VERSION_VAR}}\")") - endif() - endif () - - if(VERSION_OK) - string(APPEND DETAILS "[v${${FPHSA_VERSION_VAR}}(${${_NAME}_FIND_VERSION})]") - else() - set(${_NAME}_FOUND FALSE) - endif() - - - # print the result: - if (${_NAME}_FOUND) - FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG} ${COMPONENT_MSG}" "${DETAILS}") - else () - - if(FPHSA_CONFIG_MODE) - _FPHSA_HANDLE_FAILURE_CONFIG_MODE() - else() - if(NOT VERSION_OK) - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})") - else() - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing:${MISSING_VARS}) ${VERSION_MSG}") - endif() - endif() - - endif () - - set(${_NAME}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE) - set(${_NAME_UPPER}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE) -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindPackageMessage.cmake b/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindPackageMessage.cmake deleted file mode 100644 index 6821cee4f77..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.13/Modules/FindPackageMessage.cmake +++ /dev/null @@ -1,47 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#.rst: -# FindPackageMessage -# ------------------ -# -# -# -# FIND_PACKAGE_MESSAGE( "message for user" "find result details") -# -# This macro is intended to be used in FindXXX.cmake modules files. It -# will print a message once for each unique find result. This is useful -# for telling the user where a package was found. The first argument -# specifies the name (XXX) of the package. The second argument -# specifies the message to display. The third argument lists details -# about the find result so that if they change the message will be -# displayed again. The macro also obeys the QUIET argument to the -# find_package command. -# -# Example: -# -# :: -# -# if(X11_FOUND) -# FIND_PACKAGE_MESSAGE(X11 "Found X11: ${X11_X11_LIB}" -# "[${X11_X11_LIB}][${X11_INCLUDE_DIR}]") -# else() -# ... -# endif() - -function(FIND_PACKAGE_MESSAGE pkg msg details) - # Avoid printing a message repeatedly for the same find result. - if(NOT ${pkg}_FIND_QUIETLY) - string(REPLACE "\n" "" details "${details}") - set(DETAILS_VAR FIND_PACKAGE_MESSAGE_DETAILS_${pkg}) - if(NOT "${details}" STREQUAL "${${DETAILS_VAR}}") - # The message has not yet been printed. - message(STATUS "${msg}") - - # Save the find details in the cache to avoid printing the same - # message again. - set("${DETAILS_VAR}" "${details}" - CACHE INTERNAL "Details about finding ${pkg}") - endif() - endif() -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.13/README b/extern/ycm/ycm-0.11.0/cmake-3.13/README deleted file mode 100644 index c02c929145a..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.13/README +++ /dev/null @@ -1,11 +0,0 @@ -Files in this folder and its subfolder come from CMake git repository -(ref v3.13.5): - - git://cmake.org/cmake.git - -They were imported exactly as they are on the original repository, in -order to supply the new features and bugfix available in newer releases -to user with older cmake releases. - -These files are distributed under the OSI-approved BSD License; -see accompanying file Copyright.txt for details. diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Copyright.txt b/extern/ycm/ycm-0.11.0/cmake-3.14/Copyright.txt deleted file mode 100644 index f2362144a1c..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Copyright.txt +++ /dev/null @@ -1,131 +0,0 @@ -CMake - Cross Platform Makefile Generator -Copyright 2000-2019 Kitware, Inc. and Contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -* Neither the name of Kitware, Inc. nor the names of Contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ------------------------------------------------------------------------------- - -The following individuals and institutions are among the Contributors: - -* Aaron C. Meadows -* Adriaan de Groot -* Aleksey Avdeev -* Alexander Neundorf -* Alexander Smorkalov -* Alexey Sokolov -* Alex Merry -* Alex Turbov -* Andreas Pakulat -* Andreas Schneider -* André Rigland Brodtkorb -* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf -* Benjamin Eikel -* Bjoern Ricks -* Brad Hards -* Christopher Harvey -* Christoph Grüninger -* Clement Creusot -* Daniel Blezek -* Daniel Pfeifer -* Enrico Scholz -* Eran Ifrah -* Esben Mose Hansen, Ange Optimization ApS -* Geoffrey Viola -* Google Inc -* Gregor Jasny -* Helio Chissini de Castro -* Ilya Lavrenov -* Insight Software Consortium -* Jan Woetzel -* Julien Schueller -* Kelly Thompson -* Laurent Montel -* Konstantin Podsvirov -* Mario Bensi -* Martin Gräßlin -* Mathieu Malaterre -* Matthaeus G. Chajdas -* Matthias Kretz -* Matthias Maennich -* Michael Hirsch, Ph.D. -* Michael Stürmer -* Miguel A. Figueroa-Villanueva -* Mike Jackson -* Mike McQuaid -* Nicolas Bock -* Nicolas Despres -* Nikita Krupen'ko -* NVIDIA Corporation -* OpenGamma Ltd. -* Patrick Stotko -* Per Øyvind Karlsen -* Peter Collingbourne -* Petr Gotthard -* Philip Lowman -* Philippe Proulx -* Raffi Enficiaud, Max Planck Society -* Raumfeld -* Roger Leigh -* Rolf Eike Beer -* Roman Donchenko -* Roman Kharitonov -* Ruslan Baratov -* Sebastian Holtermann -* Stephen Kelly -* Sylvain Joubert -* Thomas Sondergaard -* Tobias Hunger -* Todd Gamblin -* Tristan Carel -* University of Dundee -* Vadim Zhukov -* Will Dicharry - -See version control history for details of individual contributions. - -The above copyright and license notice applies to distributions of -CMake in source and binary form. Third-party software packages supplied -with CMake under compatible licenses provide their own copyright notices -documented in corresponding subdirectories or source files. - ------------------------------------------------------------------------------- - -CMake was initially developed by Kitware with the following sponsorship: - - * National Library of Medicine at the National Institutes of Health - as part of the Insight Segmentation and Registration Toolkit (ITK). - - * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel - Visualization Initiative. - - * National Alliance for Medical Image Computing (NAMIC) is funded by the - National Institutes of Health through the NIH Roadmap for Medical Research, - Grant U54 EB005149. - - * Kitware, Inc. diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in deleted file mode 100644 index afffc047f10..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in +++ /dev/null @@ -1,37 +0,0 @@ -# This is a basic version file for the Config-mode of find_package(). -# It is used by write_basic_package_version_file() as input file for configure_file() -# to create a version-file which can be installed along a config.cmake file. -# -# The created file sets PACKAGE_VERSION_EXACT if the current version string and -# the requested version string are exactly the same and it sets -# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version. -# The variable CVF_VERSION must be set before calling configure_file(). - -set(PACKAGE_VERSION "@CVF_VERSION@") - -if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - set(PACKAGE_VERSION_COMPATIBLE TRUE) - if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() - - -# if the installed project requested no architecture check, don't perform the check -if("@CVF_ARCH_INDEPENDENT@") - return() -endif() - -# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: -if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") - return() -endif() - -# check that the installed version has the same 32/64bit-ness as the one which is currently searching: -if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "@CMAKE_SIZEOF_VOID_P@") - math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8") - set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") - set(PACKAGE_VERSION_UNSUITABLE TRUE) -endif() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-ExactVersion.cmake.in b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-ExactVersion.cmake.in deleted file mode 100644 index fe5c2e5a857..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-ExactVersion.cmake.in +++ /dev/null @@ -1,52 +0,0 @@ -# This is a basic version file for the Config-mode of find_package(). -# It is used by write_basic_package_version_file() as input file for configure_file() -# to create a version-file which can be installed along a config.cmake file. -# -# The created file sets PACKAGE_VERSION_EXACT if the current version string and -# the requested version string are exactly the same and it sets -# PACKAGE_VERSION_COMPATIBLE if the current version is equal to the requested version. -# The tweak version component is ignored. -# The variable CVF_VERSION must be set before calling configure_file(). - - -set(PACKAGE_VERSION "@CVF_VERSION@") - -if("@CVF_VERSION@" MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.") # strip the tweak version - set(CVF_VERSION_NO_TWEAK "${CMAKE_MATCH_1}") -else() - set(CVF_VERSION_NO_TWEAK "@CVF_VERSION@") -endif() - -if(PACKAGE_FIND_VERSION MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.") # strip the tweak version - set(REQUESTED_VERSION_NO_TWEAK "${CMAKE_MATCH_1}") -else() - set(REQUESTED_VERSION_NO_TWEAK "${PACKAGE_FIND_VERSION}") -endif() - -if(REQUESTED_VERSION_NO_TWEAK STREQUAL CVF_VERSION_NO_TWEAK) - set(PACKAGE_VERSION_COMPATIBLE TRUE) -else() - set(PACKAGE_VERSION_COMPATIBLE FALSE) -endif() - -if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) - set(PACKAGE_VERSION_EXACT TRUE) -endif() - - -# if the installed project requested no architecture check, don't perform the check -if("@CVF_ARCH_INDEPENDENT@") - return() -endif() - -# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: -if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") - return() -endif() - -# check that the installed version has the same 32/64bit-ness as the one which is currently searching: -if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "@CMAKE_SIZEOF_VOID_P@") - math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8") - set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") - set(PACKAGE_VERSION_UNSUITABLE TRUE) -endif() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-SameMajorVersion.cmake.in b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-SameMajorVersion.cmake.in deleted file mode 100644 index d885c0f93d8..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-SameMajorVersion.cmake.in +++ /dev/null @@ -1,51 +0,0 @@ -# This is a basic version file for the Config-mode of find_package(). -# It is used by write_basic_package_version_file() as input file for configure_file() -# to create a version-file which can be installed along a config.cmake file. -# -# The created file sets PACKAGE_VERSION_EXACT if the current version string and -# the requested version string are exactly the same and it sets -# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version, -# but only if the requested major version is the same as the current one. -# The variable CVF_VERSION must be set before calling configure_file(). - - -set(PACKAGE_VERSION "@CVF_VERSION@") - -if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - - if("@CVF_VERSION@" MATCHES "^([0-9]+)\\.") - set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") - else() - set(CVF_VERSION_MAJOR "@CVF_VERSION@") - endif() - - if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) - set(PACKAGE_VERSION_COMPATIBLE TRUE) - else() - set(PACKAGE_VERSION_COMPATIBLE FALSE) - endif() - - if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() - - -# if the installed project requested no architecture check, don't perform the check -if("@CVF_ARCH_INDEPENDENT@") - return() -endif() - -# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: -if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") - return() -endif() - -# check that the installed version has the same 32/64bit-ness as the one which is currently searching: -if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "@CMAKE_SIZEOF_VOID_P@") - math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8") - set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") - set(PACKAGE_VERSION_UNSUITABLE TRUE) -endif() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-SameMinorVersion.cmake.in b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-SameMinorVersion.cmake.in deleted file mode 100644 index bf055e8d44e..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/BasicConfigVersion-SameMinorVersion.cmake.in +++ /dev/null @@ -1,55 +0,0 @@ -# This is a basic version file for the Config-mode of find_package(). -# It is used by write_basic_package_version_file() as input file for configure_file() -# to create a version-file which can be installed along a config.cmake file. -# -# The created file sets PACKAGE_VERSION_EXACT if the current version string and -# the requested version string are exactly the same and it sets -# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version, -# but only if the requested major and minor versions are the same as the current -# one. -# The variable CVF_VERSION must be set before calling configure_file(). - - -set(PACKAGE_VERSION "@CVF_VERSION@") - -if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) - set(PACKAGE_VERSION_COMPATIBLE FALSE) -else() - - if("@CVF_VERSION@" MATCHES "^([0-9]+)\\.([0-9]+)") - set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") - set(CVF_VERSION_MINOR "${CMAKE_MATCH_2}") - else() - set(CVF_VERSION_MAJOR "@CVF_VERSION@") - set(CVF_VERSION_MINOR "") - endif() - - if((PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) AND - (PACKAGE_FIND_VERSION_MINOR STREQUAL CVF_VERSION_MINOR)) - set(PACKAGE_VERSION_COMPATIBLE TRUE) - else() - set(PACKAGE_VERSION_COMPATIBLE FALSE) - endif() - - if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) - set(PACKAGE_VERSION_EXACT TRUE) - endif() -endif() - - -# if the installed project requested no architecture check, don't perform the check -if("@CVF_ARCH_INDEPENDENT@") - return() -endif() - -# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: -if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") - return() -endif() - -# check that the installed version has the same 32/64bit-ness as the one which is currently searching: -if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "@CMAKE_SIZEOF_VOID_P@") - math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8") - set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") - set(PACKAGE_VERSION_UNSUITABLE TRUE) -endif() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/CMakePackageConfigHelpers.cmake b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/CMakePackageConfigHelpers.cmake deleted file mode 100644 index 22fc95366b3..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/CMakePackageConfigHelpers.cmake +++ /dev/null @@ -1,332 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -CMakePackageConfigHelpers -------------------------- - -Helpers functions for creating config files that can be included by other -projects to find and use a package. - -Adds the :command:`configure_package_config_file()` and -:command:`write_basic_package_version_file()` commands. - -Generating a Package Configuration File -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. command:: configure_package_config_file - - Create a config file for a project:: - - configure_package_config_file( - INSTALL_DESTINATION - [PATH_VARS ... ] - [NO_SET_AND_CHECK_MACRO] - [NO_CHECK_REQUIRED_COMPONENTS_MACRO] - [INSTALL_PREFIX ] - ) - -``configure_package_config_file()`` should be used instead of the plain -:command:`configure_file()` command when creating the ``Config.cmake`` -or ``-config.cmake`` file for installing a project or library. -It helps making the resulting package relocatable by avoiding hardcoded paths -in the installed ``Config.cmake`` file. - -In a ``FooConfig.cmake`` file there may be code like this to make the install -destinations know to the using project: - -.. code-block:: cmake - - set(FOO_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@" ) - set(FOO_DATA_DIR "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" ) - set(FOO_ICONS_DIR "@CMAKE_INSTALL_PREFIX@/share/icons" ) - #...logic to determine installedPrefix from the own location... - set(FOO_CONFIG_DIR "${installedPrefix}/@CONFIG_INSTALL_DIR@" ) - -All 4 options shown above are not sufficient, since the first 3 hardcode the -absolute directory locations, and the 4th case works only if the logic to -determine the ``installedPrefix`` is correct, and if ``CONFIG_INSTALL_DIR`` -contains a relative path, which in general cannot be guaranteed. This has the -effect that the resulting ``FooConfig.cmake`` file would work poorly under -Windows and OSX, where users are used to choose the install location of a -binary package at install time, independent from how -:variable:`CMAKE_INSTALL_PREFIX` was set at build/cmake time. - -Using ``configure_package_config_file`` helps. If used correctly, it makes -the resulting ``FooConfig.cmake`` file relocatable. Usage: - -1. write a ``FooConfig.cmake.in`` file as you are used to -2. insert a line containing only the string ``@PACKAGE_INIT@`` -3. instead of ``set(FOO_DIR "@SOME_INSTALL_DIR@")``, use - ``set(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")`` (this must be after the - ``@PACKAGE_INIT@`` line) -4. instead of using the normal :command:`configure_file()`, use - ``configure_package_config_file()`` - - - -The ```` and ```` arguments are the input and output file, the -same way as in :command:`configure_file()`. - -The ```` given to ``INSTALL_DESTINATION`` must be the destination where -the ``FooConfig.cmake`` file will be installed to. This path can either be -absolute, or relative to the ``INSTALL_PREFIX`` path. - -The variables ```` to ```` given as ``PATH_VARS`` are the -variables which contain install destinations. For each of them the macro will -create a helper variable ``PACKAGE_``. These helper variables must be -used in the ``FooConfig.cmake.in`` file for setting the installed location. -They are calculated by ``configure_package_config_file`` so that they are -always relative to the installed location of the package. This works both for -relative and also for absolute locations. For absolute locations it works -only if the absolute location is a subdirectory of ``INSTALL_PREFIX``. - -If the ``INSTALL_PREFIX`` argument is passed, this is used as base path to -calculate all the relative paths. The ```` argument must be an absolute -path. If this argument is not passed, the :variable:`CMAKE_INSTALL_PREFIX` -variable will be used instead. The default value is good when generating a -FooConfig.cmake file to use your package from the install tree. When -generating a FooConfig.cmake file to use your package from the build tree this -option should be used. - -By default ``configure_package_config_file`` also generates two helper macros, -``set_and_check()`` and ``check_required_components()`` into the -``FooConfig.cmake`` file. - -``set_and_check()`` should be used instead of the normal ``set()`` command for -setting directories and file locations. Additionally to setting the variable -it also checks that the referenced file or directory actually exists and fails -with a ``FATAL_ERROR`` otherwise. This makes sure that the created -``FooConfig.cmake`` file does not contain wrong references. -When using the ``NO_SET_AND_CHECK_MACRO``, this macro is not generated -into the ``FooConfig.cmake`` file. - -``check_required_components()`` should be called at the end of -the ``FooConfig.cmake`` file. This macro checks whether all requested, -non-optional components have been found, and if this is not the case, sets -the ``Foo_FOUND`` variable to ``FALSE``, so that the package is considered to -be not found. It does that by testing the ``Foo__FOUND`` -variables for all requested required components. This macro should be -called even if the package doesn't provide any components to make sure -users are not specifying components erroneously. When using the -``NO_CHECK_REQUIRED_COMPONENTS_MACRO`` option, this macro is not generated -into the ``FooConfig.cmake`` file. - -For an example see below the documentation for -:command:`write_basic_package_version_file()`. - -Generating a Package Version File -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. command:: write_basic_package_version_file - - Create a version file for a project:: - - write_basic_package_version_file( - [VERSION ] - COMPATIBILITY - [ARCH_INDEPENDENT] ) - - -Writes a file for use as ``ConfigVersion.cmake`` file to -````. See the documentation of :command:`find_package()` for -details on this. - -```` is the output filename, it should be in the build tree. -```` is the version number of the project to be installed. - -If no ``VERSION`` is given, the :variable:`PROJECT_VERSION` variable is used. -If this hasn't been set, it errors out. - -The ``COMPATIBILITY`` mode ``AnyNewerVersion`` means that the installed -package version will be considered compatible if it is newer or exactly the -same as the requested version. This mode should be used for packages which -are fully backward compatible, also across major versions. -If ``SameMajorVersion`` is used instead, then the behaviour differs from -``AnyNewerVersion`` in that the major version number must be the same as -requested, e.g. version 2.0 will not be considered compatible if 1.0 is -requested. This mode should be used for packages which guarantee backward -compatibility within the same major version. -If ``SameMinorVersion`` is used, the behaviour is the same as -``SameMajorVersion``, but both major and minor version must be the same as -requested, e.g version 0.2 will not be compatible if 0.1 is requested. -If ``ExactVersion`` is used, then the package is only considered compatible if -the requested version matches exactly its own version number (not considering -the tweak version). For example, version 1.2.3 of a package is only -considered compatible to requested version 1.2.3. This mode is for packages -without compatibility guarantees. -If your project has more elaborated version matching rules, you will need to -write your own custom ``ConfigVersion.cmake`` file instead of using this -macro. - -If ``ARCH_INDEPENDENT`` is given, the installed package version will be -considered compatible even if it was built for a different architecture than -the requested architecture. Otherwise, an architecture check will be performed, -and the package will be considered compatible only if the architecture matches -exactly. For example, if the package is built for a 32-bit architecture, the -package is only considered compatible if it is used on a 32-bit architecture, -unless ``ARCH_INDEPENDENT`` is given, in which case the package is considered -compatible on any architecture. - -.. note:: ``ARCH_INDEPENDENT`` is intended for header-only libraries or similar - packages with no binaries. - -Internally, this macro executes :command:`configure_file()` to create the -resulting version file. Depending on the ``COMPATIBILITY``, the corresponding -``BasicConfigVersion-.cmake.in`` file is used. -Please note that these files are internal to CMake and you should not call -:command:`configure_file()` on them yourself, but they can be used as starting -point to create more sophisticted custom ``ConfigVersion.cmake`` files. - -Example Generating Package Files -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Example using both :command:`configure_package_config_file` and -``write_basic_package_version_file()``: - -``CMakeLists.txt``: - -.. code-block:: cmake - - set(INCLUDE_INSTALL_DIR include/ ... CACHE ) - set(LIB_INSTALL_DIR lib/ ... CACHE ) - set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE ) - #... - include(CMakePackageConfigHelpers) - configure_package_config_file(FooConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake - INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake - PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR) - write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake - VERSION 1.2.3 - COMPATIBILITY SameMajorVersion ) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake - ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake - DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake ) - -``FooConfig.cmake.in``: - -:: - - set(FOO_VERSION x.y.z) - ... - @PACKAGE_INIT@ - ... - set_and_check(FOO_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") - set_and_check(FOO_SYSCONFIG_DIR "@PACKAGE_SYSCONFIG_INSTALL_DIR@") - - check_required_components(Foo) -#]=======================================================================] - -include(WriteBasicConfigVersionFile) - -macro(WRITE_BASIC_PACKAGE_VERSION_FILE) - write_basic_config_version_file(${ARGN}) -endmacro() - -function(CONFIGURE_PACKAGE_CONFIG_FILE _inputFile _outputFile) - set(options NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO) - set(oneValueArgs INSTALL_DESTINATION INSTALL_PREFIX) - set(multiValueArgs PATH_VARS ) - - cmake_parse_arguments(CCF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if(CCF_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unknown keywords given to CONFIGURE_PACKAGE_CONFIG_FILE(): \"${CCF_UNPARSED_ARGUMENTS}\"") - endif() - - if(NOT CCF_INSTALL_DESTINATION) - message(FATAL_ERROR "No INSTALL_DESTINATION given to CONFIGURE_PACKAGE_CONFIG_FILE()") - endif() - - if(DEFINED CCF_INSTALL_PREFIX) - if(IS_ABSOLUTE "${CCF_INSTALL_PREFIX}") - set(installPrefix "${CCF_INSTALL_PREFIX}") - else() - message(FATAL_ERROR "INSTALL_PREFIX must be an absolute path") - endif() - elseif(IS_ABSOLUTE "${CMAKE_INSTALL_PREFIX}") - set(installPrefix "${CMAKE_INSTALL_PREFIX}") - else() - get_filename_component(installPrefix "${CMAKE_INSTALL_PREFIX}" ABSOLUTE) - endif() - - if(IS_ABSOLUTE "${CCF_INSTALL_DESTINATION}") - set(absInstallDir "${CCF_INSTALL_DESTINATION}") - else() - set(absInstallDir "${installPrefix}/${CCF_INSTALL_DESTINATION}") - endif() - - file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${absInstallDir}" "${installPrefix}" ) - - foreach(var ${CCF_PATH_VARS}) - if(NOT DEFINED ${var}) - message(FATAL_ERROR "Variable ${var} does not exist") - else() - if(IS_ABSOLUTE "${${var}}") - string(REPLACE "${installPrefix}" "\${PACKAGE_PREFIX_DIR}" - PACKAGE_${var} "${${var}}") - else() - set(PACKAGE_${var} "\${PACKAGE_PREFIX_DIR}/${${var}}") - endif() - endif() - endforeach() - - get_filename_component(inputFileName "${_inputFile}" NAME) - - set(PACKAGE_INIT " -####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### -####### Any changes to this file will be overwritten by the next CMake run #### -####### The input file was ${inputFileName} ######## - -get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/${PACKAGE_RELATIVE_PATH}\" ABSOLUTE) -") - - if("${absInstallDir}" MATCHES "^(/usr)?/lib(64)?/.+") - # Handle "/usr move" symlinks created by some Linux distros. - string(APPEND PACKAGE_INIT " -# Use original install prefix when loaded through a \"/usr move\" -# cross-prefix symbolic link such as /lib -> /usr/lib. -get_filename_component(_realCurr \"\${CMAKE_CURRENT_LIST_DIR}\" REALPATH) -get_filename_component(_realOrig \"${absInstallDir}\" REALPATH) -if(_realCurr STREQUAL _realOrig) - set(PACKAGE_PREFIX_DIR \"${installPrefix}\") -endif() -unset(_realOrig) -unset(_realCurr) -") - endif() - - if(NOT CCF_NO_SET_AND_CHECK_MACRO) - string(APPEND PACKAGE_INIT " -macro(set_and_check _var _file) - set(\${_var} \"\${_file}\") - if(NOT EXISTS \"\${_file}\") - message(FATAL_ERROR \"File or directory \${_file} referenced by variable \${_var} does not exist !\") - endif() -endmacro() -") - endif() - - - if(NOT CCF_NO_CHECK_REQUIRED_COMPONENTS_MACRO) - string(APPEND PACKAGE_INIT " -macro(check_required_components _NAME) - foreach(comp \${\${_NAME}_FIND_COMPONENTS}) - if(NOT \${_NAME}_\${comp}_FOUND) - if(\${_NAME}_FIND_REQUIRED_\${comp}) - set(\${_NAME}_FOUND FALSE) - endif() - endif() - endforeach() -endmacro() -") - endif() - - string(APPEND PACKAGE_INIT " -####################################################################################") - - configure_file("${_inputFile}" "${_outputFile}" @ONLY) - -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/CMakeParseArguments.cmake b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/CMakeParseArguments.cmake deleted file mode 100644 index c753b7f51fc..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/CMakeParseArguments.cmake +++ /dev/null @@ -1,12 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -CMakeParseArguments -------------------- - -This module once implemented the :command:`cmake_parse_arguments` command -that is now implemented natively by CMake. It is now an empty placeholder -for compatibility with projects that include it to get the command from -CMake 3.4 and lower. -#]=======================================================================] diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake deleted file mode 100644 index 1722d6aafbf..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake +++ /dev/null @@ -1,386 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindPackageHandleStandardArgs ------------------------------ - -This module provides a function intended to be used in :ref:`Find Modules` -implementing :command:`find_package()` calls. It handles the -``REQUIRED``, ``QUIET`` and version-related arguments of ``find_package``. -It also sets the ``_FOUND`` variable. The package is -considered found if all variables listed contain valid results, e.g. -valid filepaths. - -.. command:: find_package_handle_standard_args - - There are two signatures:: - - find_package_handle_standard_args( - (DEFAULT_MSG|) - ... - ) - - find_package_handle_standard_args( - [FOUND_VAR ] - [REQUIRED_VARS ...] - [VERSION_VAR ] - [HANDLE_COMPONENTS] - [CONFIG_MODE] - [FAIL_MESSAGE ] - ) - - The ``_FOUND`` variable will be set to ``TRUE`` if all - the variables ``...`` are valid and any optional - constraints are satisfied, and ``FALSE`` otherwise. A success or - failure message may be displayed based on the results and on - whether the ``REQUIRED`` and/or ``QUIET`` option was given to - the :command:`find_package` call. - - The options are: - - ``(DEFAULT_MSG|)`` - In the simple signature this specifies the failure message. - Use ``DEFAULT_MSG`` to ask for a default message to be computed - (recommended). Not valid in the full signature. - - ``FOUND_VAR `` - Obsolete. Specifies either ``_FOUND`` or - ``_FOUND`` as the result variable. This exists only - for compatibility with older versions of CMake and is now ignored. - Result variables of both names are always set for compatibility. - - ``REQUIRED_VARS ...`` - Specify the variables which are required for this package. - These may be named in the generated failure message asking the - user to set the missing variable values. Therefore these should - typically be cache entries such as ``FOO_LIBRARY`` and not output - variables like ``FOO_LIBRARIES``. - - ``VERSION_VAR `` - Specify the name of a variable that holds the version of the package - that has been found. This version will be checked against the - (potentially) specified required version given to the - :command:`find_package` call, including its ``EXACT`` option. - The default messages include information about the required - version and the version which has been actually found, both - if the version is ok or not. - - ``HANDLE_COMPONENTS`` - Enable handling of package components. In this case, the command - will report which components have been found and which are missing, - and the ``_FOUND`` variable will be set to ``FALSE`` - if any of the required components (i.e. not the ones listed after - the ``OPTIONAL_COMPONENTS`` option of :command:`find_package`) are - missing. - - ``CONFIG_MODE`` - Specify that the calling find module is a wrapper around a - call to ``find_package( NO_MODULE)``. This implies - a ``VERSION_VAR`` value of ``_VERSION``. The command - will automatically check whether the package configuration file - was found. - - ``FAIL_MESSAGE `` - Specify a custom failure message instead of using the default - generated message. Not recommended. - -Example for the simple signature: - -.. code-block:: cmake - - find_package_handle_standard_args(LibXml2 DEFAULT_MSG - LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) - -The ``LibXml2`` package is considered to be found if both -``LIBXML2_LIBRARY`` and ``LIBXML2_INCLUDE_DIR`` are valid. -Then also ``LibXml2_FOUND`` is set to ``TRUE``. If it is not found -and ``REQUIRED`` was used, it fails with a -:command:`message(FATAL_ERROR)`, independent whether ``QUIET`` was -used or not. If it is found, success will be reported, including -the content of the first ````. On repeated CMake runs, -the same message will not be printed again. - -Example for the full signature: - -.. code-block:: cmake - - find_package_handle_standard_args(LibArchive - REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR - VERSION_VAR LibArchive_VERSION) - -In this case, the ``LibArchive`` package is considered to be found if -both ``LibArchive_LIBRARY`` and ``LibArchive_INCLUDE_DIR`` are valid. -Also the version of ``LibArchive`` will be checked by using the version -contained in ``LibArchive_VERSION``. Since no ``FAIL_MESSAGE`` is given, -the default messages will be printed. - -Another example for the full signature: - -.. code-block:: cmake - - find_package(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4) - find_package_handle_standard_args(Automoc4 CONFIG_MODE) - -In this case, a ``FindAutmoc4.cmake`` module wraps a call to -``find_package(Automoc4 NO_MODULE)`` and adds an additional search -directory for ``automoc4``. Then the call to -``find_package_handle_standard_args`` produces a proper success/failure -message. -#]=======================================================================] - -include(${CMAKE_CURRENT_LIST_DIR}/FindPackageMessage.cmake) - -# internal helper macro -macro(_FPHSA_FAILURE_MESSAGE _msg) - if (${_NAME}_FIND_REQUIRED) - message(FATAL_ERROR "${_msg}") - else () - if (NOT ${_NAME}_FIND_QUIETLY) - message(STATUS "${_msg}") - endif () - endif () -endmacro() - - -# internal helper macro to generate the failure message when used in CONFIG_MODE: -macro(_FPHSA_HANDLE_FAILURE_CONFIG_MODE) - # _CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found: - if(${_NAME}_CONFIG) - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing:${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})") - else() - # If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version. - # List them all in the error message: - if(${_NAME}_CONSIDERED_CONFIGS) - set(configsText "") - list(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount) - math(EXPR configsCount "${configsCount} - 1") - foreach(currentConfigIndex RANGE ${configsCount}) - list(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename) - list(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version) - string(APPEND configsText " ${filename} (version ${version})\n") - endforeach() - if (${_NAME}_NOT_FOUND_MESSAGE) - string(APPEND configsText " Reason given by package: ${${_NAME}_NOT_FOUND_MESSAGE}\n") - endif() - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:\n${configsText}") - - else() - # Simple case: No Config-file was found at all: - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}") - endif() - endif() -endmacro() - - -function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG) - -# Set up the arguments for `cmake_parse_arguments`. - set(options CONFIG_MODE HANDLE_COMPONENTS) - set(oneValueArgs FAIL_MESSAGE VERSION_VAR FOUND_VAR) - set(multiValueArgs REQUIRED_VARS) - -# Check whether we are in 'simple' or 'extended' mode: - set(_KEYWORDS_FOR_EXTENDED_MODE ${options} ${oneValueArgs} ${multiValueArgs} ) - list(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX) - - if(${INDEX} EQUAL -1) - set(FPHSA_FAIL_MESSAGE ${_FIRST_ARG}) - set(FPHSA_REQUIRED_VARS ${ARGN}) - set(FPHSA_VERSION_VAR) - else() - cmake_parse_arguments(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${_FIRST_ARG} ${ARGN}) - - if(FPHSA_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"") - endif() - - if(NOT FPHSA_FAIL_MESSAGE) - set(FPHSA_FAIL_MESSAGE "DEFAULT_MSG") - endif() - - # In config-mode, we rely on the variable _CONFIG, which is set by find_package() - # when it successfully found the config-file, including version checking: - if(FPHSA_CONFIG_MODE) - list(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG) - list(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS) - set(FPHSA_VERSION_VAR ${_NAME}_VERSION) - endif() - - if(NOT FPHSA_REQUIRED_VARS) - message(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()") - endif() - endif() - -# now that we collected all arguments, process them - - if("x${FPHSA_FAIL_MESSAGE}" STREQUAL "xDEFAULT_MSG") - set(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}") - endif() - - list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR) - - string(TOUPPER ${_NAME} _NAME_UPPER) - string(TOLOWER ${_NAME} _NAME_LOWER) - - if(FPHSA_FOUND_VAR) - if(FPHSA_FOUND_VAR MATCHES "^${_NAME}_FOUND$" OR FPHSA_FOUND_VAR MATCHES "^${_NAME_UPPER}_FOUND$") - set(_FOUND_VAR ${FPHSA_FOUND_VAR}) - else() - message(FATAL_ERROR "The argument for FOUND_VAR is \"${FPHSA_FOUND_VAR}\", but only \"${_NAME}_FOUND\" and \"${_NAME_UPPER}_FOUND\" are valid names.") - endif() - else() - set(_FOUND_VAR ${_NAME_UPPER}_FOUND) - endif() - - # collect all variables which were not found, so they can be printed, so the - # user knows better what went wrong (#6375) - set(MISSING_VARS "") - set(DETAILS "") - # check if all passed variables are valid - set(FPHSA_FOUND_${_NAME} TRUE) - foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS}) - if(NOT ${_CURRENT_VAR}) - set(FPHSA_FOUND_${_NAME} FALSE) - string(APPEND MISSING_VARS " ${_CURRENT_VAR}") - else() - string(APPEND DETAILS "[${${_CURRENT_VAR}}]") - endif() - endforeach() - if(FPHSA_FOUND_${_NAME}) - set(${_NAME}_FOUND TRUE) - set(${_NAME_UPPER}_FOUND TRUE) - else() - set(${_NAME}_FOUND FALSE) - set(${_NAME_UPPER}_FOUND FALSE) - endif() - - # component handling - unset(FOUND_COMPONENTS_MSG) - unset(MISSING_COMPONENTS_MSG) - - if(FPHSA_HANDLE_COMPONENTS) - foreach(comp ${${_NAME}_FIND_COMPONENTS}) - if(${_NAME}_${comp}_FOUND) - - if(NOT DEFINED FOUND_COMPONENTS_MSG) - set(FOUND_COMPONENTS_MSG "found components: ") - endif() - string(APPEND FOUND_COMPONENTS_MSG " ${comp}") - - else() - - if(NOT DEFINED MISSING_COMPONENTS_MSG) - set(MISSING_COMPONENTS_MSG "missing components: ") - endif() - string(APPEND MISSING_COMPONENTS_MSG " ${comp}") - - if(${_NAME}_FIND_REQUIRED_${comp}) - set(${_NAME}_FOUND FALSE) - string(APPEND MISSING_VARS " ${comp}") - endif() - - endif() - endforeach() - set(COMPONENT_MSG "${FOUND_COMPONENTS_MSG} ${MISSING_COMPONENTS_MSG}") - string(APPEND DETAILS "[c${COMPONENT_MSG}]") - endif() - - # version handling: - set(VERSION_MSG "") - set(VERSION_OK TRUE) - - # check with DEFINED here as the requested or found version may be "0" - if (DEFINED ${_NAME}_FIND_VERSION) - if(DEFINED ${FPHSA_VERSION_VAR}) - set(_FOUND_VERSION ${${FPHSA_VERSION_VAR}}) - - if(${_NAME}_FIND_VERSION_EXACT) # exact version required - # count the dots in the version string - string(REGEX REPLACE "[^.]" "" _VERSION_DOTS "${_FOUND_VERSION}") - # add one dot because there is one dot more than there are components - string(LENGTH "${_VERSION_DOTS}." _VERSION_DOTS) - if (_VERSION_DOTS GREATER ${_NAME}_FIND_VERSION_COUNT) - # Because of the C++ implementation of find_package() ${_NAME}_FIND_VERSION_COUNT - # is at most 4 here. Therefore a simple lookup table is used. - if (${_NAME}_FIND_VERSION_COUNT EQUAL 1) - set(_VERSION_REGEX "[^.]*") - elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 2) - set(_VERSION_REGEX "[^.]*\\.[^.]*") - elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 3) - set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*") - else () - set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*\\.[^.]*") - endif () - string(REGEX REPLACE "^(${_VERSION_REGEX})\\..*" "\\1" _VERSION_HEAD "${_FOUND_VERSION}") - unset(_VERSION_REGEX) - if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _VERSION_HEAD) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")") - endif () - unset(_VERSION_HEAD) - else () - if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _FOUND_VERSION) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")") - endif () - endif () - unset(_VERSION_DOTS) - - else() # minimum version specified: - if (${_NAME}_FIND_VERSION VERSION_GREATER _FOUND_VERSION) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable version \"${_FOUND_VERSION}\", minimum required is \"${${_NAME}_FIND_VERSION}\")") - endif () - endif() - - else() - - # if the package was not found, but a version was given, add that to the output: - if(${_NAME}_FIND_VERSION_EXACT) - set(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")") - else() - set(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")") - endif() - - endif() - else () - # Check with DEFINED as the found version may be 0. - if(DEFINED ${FPHSA_VERSION_VAR}) - set(VERSION_MSG "(found version \"${${FPHSA_VERSION_VAR}}\")") - endif() - endif () - - if(VERSION_OK) - string(APPEND DETAILS "[v${${FPHSA_VERSION_VAR}}(${${_NAME}_FIND_VERSION})]") - else() - set(${_NAME}_FOUND FALSE) - endif() - - - # print the result: - if (${_NAME}_FOUND) - FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG} ${COMPONENT_MSG}" "${DETAILS}") - else () - - if(FPHSA_CONFIG_MODE) - _FPHSA_HANDLE_FAILURE_CONFIG_MODE() - else() - if(NOT VERSION_OK) - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})") - else() - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing:${MISSING_VARS}) ${VERSION_MSG}") - endif() - endif() - - endif () - - set(${_NAME}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE) - set(${_NAME_UPPER}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE) -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindPackageMessage.cmake b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindPackageMessage.cmake deleted file mode 100644 index 0628b981691..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindPackageMessage.cmake +++ /dev/null @@ -1,48 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindPackageMessage ------------------- - -.. code-block:: cmake - - find_package_message( "message for user" "find result details") - -This function is intended to be used in FindXXX.cmake modules files. -It will print a message once for each unique find result. This is -useful for telling the user where a package was found. The first -argument specifies the name (XXX) of the package. The second argument -specifies the message to display. The third argument lists details -about the find result so that if they change the message will be -displayed again. The macro also obeys the QUIET argument to the -find_package command. - -Example: - -.. code-block:: cmake - - if(X11_FOUND) - find_package_message(X11 "Found X11: ${X11_X11_LIB}" - "[${X11_X11_LIB}][${X11_INCLUDE_DIR}]") - else() - ... - endif() -#]=======================================================================] - -function(find_package_message pkg msg details) - # Avoid printing a message repeatedly for the same find result. - if(NOT ${pkg}_FIND_QUIETLY) - string(REPLACE "\n" "" details "${details}") - set(DETAILS_VAR FIND_PACKAGE_MESSAGE_DETAILS_${pkg}) - if(NOT "${details}" STREQUAL "${${DETAILS_VAR}}") - # The message has not yet been printed. - message(STATUS "${msg}") - - # Save the find details in the cache to avoid printing the same - # message again. - set("${DETAILS_VAR}" "${details}" - CACHE INTERNAL "Details about finding ${pkg}") - endif() - endif() -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindSWIG.cmake b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindSWIG.cmake deleted file mode 100644 index 96b254f923a..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/FindSWIG.cmake +++ /dev/null @@ -1,67 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindSWIG --------- - -Find SWIG - -This module finds an installed SWIG. It sets the following variables: - -:: - - SWIG_FOUND - set to true if SWIG is found - SWIG_DIR - the directory where swig is installed - SWIG_EXECUTABLE - the path to the swig executable - SWIG_VERSION - the version number of the swig executable - - - -The minimum required version of SWIG can be specified using the -standard syntax, e.g. find_package(SWIG 1.1) - -All information is collected from the SWIG_EXECUTABLE so the version -to be found can be changed from the command line by means of setting -SWIG_EXECUTABLE -#]=======================================================================] - -find_program(SWIG_EXECUTABLE NAMES swig4.0 swig3.0 swig2.0 swig) - -if(SWIG_EXECUTABLE) - execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib - OUTPUT_VARIABLE SWIG_swiglib_output - ERROR_VARIABLE SWIG_swiglib_error - RESULT_VARIABLE SWIG_swiglib_result) - - if(SWIG_swiglib_result) - if(SWIG_FIND_REQUIRED) - message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}") - else() - message(STATUS "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}") - endif() - else() - string(REGEX REPLACE "[\n\r]+" ";" SWIG_swiglib_output ${SWIG_swiglib_output}) - find_path(SWIG_DIR swig.swg PATHS ${SWIG_swiglib_output} NO_CMAKE_FIND_ROOT_PATH) - if(SWIG_DIR) - set(SWIG_USE_FILE ${CMAKE_CURRENT_LIST_DIR}/UseSWIG.cmake) - execute_process(COMMAND ${SWIG_EXECUTABLE} -version - OUTPUT_VARIABLE SWIG_version_output - ERROR_VARIABLE SWIG_version_output - RESULT_VARIABLE SWIG_version_result) - if(SWIG_version_result) - message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -version\" failed with output:\n${SWIG_version_output}") - else() - string(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1" - SWIG_version_output "${SWIG_version_output}") - set(SWIG_VERSION ${SWIG_version_output} CACHE STRING "Swig version" FORCE) - endif() - endif() - endif() -endif() - -include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(SWIG REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR - VERSION_VAR SWIG_VERSION ) - -mark_as_advanced(SWIG_DIR SWIG_VERSION) diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/UseSWIG.cmake b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/UseSWIG.cmake deleted file mode 100644 index ea194f3f288..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/UseSWIG.cmake +++ /dev/null @@ -1,858 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -UseSWIG -------- - -This file provides support for ``SWIG``. It is assumed that :module:`FindSWIG` -module has already been loaded. - -Defines the following command for use with ``SWIG``: - -.. command:: swig_add_library - - Define swig module with given name and specified language:: - - swig_add_library( - [TYPE ] - LANGUAGE - [NO_PROXY] - [OUTPUT_DIR ] - [OUTFILE_DIR ] - SOURCES ... - ) - - Targets created with the ``swig_add_library`` command have the same - capabilities as targets created with the :command:`add_library` command, so - those targets can be used with any command expecting a target (e.g. - :command:`target_link_libraries`). - - .. note:: - - This command creates a target with the specified ```` when - policy :policy:`CMP0078` is set to ``NEW``. Otherwise, the legacy - behavior will choose a different target name and store it in the - ``SWIG_MODULE__REAL_NAME`` variable. - - .. note:: - - For multi-config generators, this module does not support - configuration-specific files generated by ``SWIG``. All build - configurations must result in the same generated source file. - - ``TYPE`` - ``SHARED``, ``MODULE`` and ``STATIC`` have the same semantic as for the - :command:`add_library` command. If ``USE_BUILD_SHARED_LIBS`` is specified, - the library type will be ``STATIC`` or ``SHARED`` based on whether the - current value of the :variable:`BUILD_SHARED_LIBS` variable is ``ON``. If - no type is specified, ``MODULE`` will be used. - - ``LANGUAGE`` - Specify the target language. - - ``NO_PROXY`` - Prevent the generation of the wrapper layer (swig ``-noproxy`` option). - - ``OUTPUT_DIR`` - Specify where to write the language specific files (swig ``-outdir`` - option). If not given, the ``CMAKE_SWIG_OUTDIR`` variable will be used. - If neither is specified, the default depends on the value of the - ``UseSWIG_MODULE_VERSION`` variable as follows: - - * If ``UseSWIG_MODULE_VERSION`` is 1 or is undefined, output is written to - the :variable:`CMAKE_CURRENT_BINARY_DIR` directory. - * If ``UseSWIG_MODULE_VERSION`` is 2, a dedicated directory will be used. - The path of this directory can be retrieved from the - ``SWIG_SUPPORT_FILES_DIRECTORY`` target property. - - ``OUTFILE_DIR`` - Specify an output directory name where the generated source file will be - placed (swig -o option). If not specified, the ``SWIG_OUTFILE_DIR`` variable - will be used. If neither is specified, ``OUTPUT_DIR`` or - ``CMAKE_SWIG_OUTDIR`` is used instead. - - ``SOURCES`` - List of sources for the library. Files with extension ``.i`` will be - identified as sources for the ``SWIG`` tool. Other files will be handled in - the standard way. This behavior can be overriden by specifying the variable - ``SWIG_SOURCE_FILE_EXTENSIONS``. - - .. note:: - - If ``UseSWIG_MODULE_VERSION`` is set to 2, it is **strongly** recommended - to use a dedicated directory unique to the target when either the - ``OUTPUT_DIR`` option or the ``CMAKE_SWIG_OUTDIR`` variable are specified. - The output directory contents are erased as part of the target build, so - to prevent interference between targets or losing other important files, - each target should have its own dedicated output directory. - -.. command:: swig_link_libraries - - Link libraries to swig module:: - - swig_link_libraries( ...) - - This command has same capabilities as :command:`target_link_libraries` - command. - - .. note:: - - If variable ``UseSWIG_TARGET_NAME_PREFERENCE`` is set to ``STANDARD``, this - command is deprecated and :command:`target_link_libraries` command must be - used instead. - -Source file properties on module files **must** be set before the invocation -of the ``swig_add_library`` command to specify special behavior of SWIG and -ensure generated files will receive the required settings. - -``CPLUSPLUS`` - Call SWIG in c++ mode. For example: - - .. code-block:: cmake - - set_property(SOURCE mymod.i PROPERTY CPLUSPLUS ON) - swig_add_library(mymod LANGUAGE python SOURCES mymod.i) - -``INCLUDE_DIRECTORIES``, ``COMPILE_DEFINITIONS`` and ``COMPILE_OPTIONS`` - Add custom flags to SWIG compiler and have same semantic as properties - :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and - :prop_sf:`COMPILE_OPTIONS`. - -``USE_TARGET_INCLUDE_DIRECTORIES`` - If set to ``TRUE``, contents of target property - :prop_tgt:`INCLUDE_DIRECTORIES` will be forwarded to ``SWIG`` compiler. - If set to ``FALSE`` target property :prop_tgt:`INCLUDE_DIRECTORIES` will be - ignored. If not set, target property ``SWIG_USE_TARGET_INCLUDE_DIRECTORIES`` - will be considered. - -``GENERATED_INCLUDE_DIRECTORIES``, ``GENERATED_COMPILE_DEFINITIONS`` and ``GENERATED_COMPILE_OPTIONS`` - Add custom flags to the C/C++ generated source. They will fill, respectively, - properties :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and - :prop_sf:`COMPILE_OPTIONS` of generated C/C++ file. - -``DEPENDS`` - Specify additional dependencies to the source file. - -``SWIG_MODULE_NAME`` - Specify the actual import name of the module in the target language. - This is required if it cannot be scanned automatically from source - or different from the module file basename. For example: - - .. code-block:: cmake - - set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname) - - .. note:: - - If policy :policy:`CMP0086` is set to ``NEW``, ``-module `` - is passed to ``SWIG`` compiler. - -Target library properties can be set to apply same configuration to all SWIG -input files. - -``SWIG_INCLUDE_DIRECTORIES``, ``SWIG_COMPILE_DEFINITIONS`` and ``SWIG_COMPILE_OPTIONS`` - These properties will be applied to all SWIG input files and have same - semantic as target properties :prop_tgt:`INCLUDE_DIRECTORIES`, - :prop_tgt:`COMPILE_DEFINITIONS` and :prop_tgt:`COMPILE_OPTIONS`. - - .. code-block:: cmake - - set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD) - swig_add_library(mymod LANGUAGE python SOURCES mymod.i) - set_property(TARGET mymod PROPERTY SWIG_COMPILE_DEFINITIONS MY_DEF1 MY_DEF2) - set_property(TARGET mymod PROPERTY SWIG_COMPILE_OPTIONS -bla -blb) - -``SWIG_USE_TARGET_INCLUDE_DIRECTORIES`` - If set to ``TRUE``, contents of target property - :prop_tgt:`INCLUDE_DIRECTORIES` will be forwarded to ``SWIG`` compiler. - If set to ``FALSE`` or not defined, target property - :prop_tgt:`INCLUDE_DIRECTORIES` will be ignored. This behavior can be - overridden by specifying source property ``USE_TARGET_INCLUDE_DIRECTORIES``. - -``SWIG_GENERATED_INCLUDE_DIRECTORIES``, ``SWIG_GENERATED_COMPILE_DEFINITIONS`` and ``SWIG_GENERATED_COMPILE_OPTIONS`` - These properties will populate, respectively, properties - :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and - :prop_sf:`COMPILE_FLAGS` of all generated C/C++ files. - -``SWIG_DEPENDS`` - Add dependencies to all SWIG input files. - -The following target properties are output properties and can be used to get -information about support files generated by ``SWIG`` interface compilation. - -``SWIG_SUPPORT_FILES`` - This output property list of wrapper files generated during SWIG compilation. - - .. code-block:: cmake - - set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD) - swig_add_library(mymod LANGUAGE python SOURCES mymod.i) - get_property(support_files TARGET mymod PROPERTY SWIG_SUPPORT_FILES) - - .. note:: - - Only most principal support files are listed. In case some advanced - features of ``SWIG`` are used (for example ``%template``), associated - support files may not be listed. Prefer to use the - ``SWIG_SUPPORT_FILES_DIRECTORY`` property to handle support files. - -``SWIG_SUPPORT_FILES_DIRECTORY`` - This output property specifies the directory where support files will be - generated. - -Some variables can be set to customize the behavior of ``swig_add_library`` -as well as ``SWIG``: - -``UseSWIG_MODULE_VERSION`` - Specify different behaviors for ``UseSWIG`` module. - - * Set to 1 or undefined: Legacy behavior is applied. - * Set to 2: A new strategy is applied regarding support files: the output - directory of support files is erased before ``SWIG`` interface compilation. - -``CMAKE_SWIG_FLAGS`` - Add flags to all swig calls. - -``CMAKE_SWIG_OUTDIR`` - Specify where to write the language specific files (swig ``-outdir`` option). - -``SWIG_OUTFILE_DIR`` - Specify an output directory name where the generated source file will be - placed. If not specified, ``CMAKE_SWIG_OUTDIR`` is used. - -``SWIG_MODULE__EXTRA_DEPS`` - Specify extra dependencies for the generated module for ````. - -``SWIG_SOURCE_FILE_EXTENSIONS`` - Specify a list of source file extensions to override the default - behavior of considering only ``.i`` files as sources for the ``SWIG`` - tool. For example: - - .. code-block:: cmake - - set(SWIG_SOURCE_FILE_EXTENSIONS ".i" ".swg") -#]=======================================================================] - -if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.13) - cmake_policy(GET CMP0078 target_name_policy) -else() - set(target_name_policy "OLD") -endif() -if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.14) - cmake_policy(GET CMP0086 module_name_policy) -else() - set(module_name_policy "OLD") -endif() - -cmake_policy (VERSION 3.12) -if (target_name_policy) - # respect user choice regarding CMP0078 policy - if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.13) - cmake_policy(SET CMP0078 ${target_name_policy}) - endif() -endif() -if (module_name_policy) - # respect user choice regarding CMP0086 policy - if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.14) - cmake_policy(SET CMP0086 ${module_name_policy}) - endif() -endif() -unset(target_name_policy) -unset(module_name_policy) - -set(SWIG_CXX_EXTENSION "cxx") -set(SWIG_EXTRA_LIBRARIES "") - -set(SWIG_PYTHON_EXTRA_FILE_EXTENSIONS ".py") -set(SWIG_JAVA_EXTRA_FILE_EXTENSIONS ".java" "JNI.java") -set(SWIG_CSHARP_EXTRA_FILE_EXTENSIONS ".cs" "PINVOKE.cs") - -set(SWIG_MANAGE_SUPPORT_FILES_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/UseSWIG/ManageSupportFiles.cmake") - -## -## PRIVATE functions -## -function (__SWIG_COMPUTE_TIMESTAMP name language infile workingdir __timestamp) - get_filename_component(filename "${infile}" NAME_WE) - set(${__timestamp} - "${workingdir}/${filename}${language}.stamp" PARENT_SCOPE) - # get_filename_component(filename "${infile}" ABSOLUTE) - # string(UUID uuid NAMESPACE 9735D882-D2F8-4E1D-88C9-A0A4F1F6ECA4 - # NAME ${name}-${language}-${filename} TYPE SHA1) - # set(${__timestamp} "${workingdir}/${uuid}.stamp" PARENT_SCOPE) -endfunction() - -# -# For given swig module initialize variables associated with it -# -macro(SWIG_MODULE_INITIALIZE name language) - string(TOUPPER "${language}" SWIG_MODULE_${name}_LANGUAGE) - string(TOLOWER "${language}" SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG) - - if (NOT DEFINED SWIG_MODULE_${name}_NOPROXY) - set (SWIG_MODULE_${name}_NOPROXY FALSE) - endif() - if ("-noproxy" IN_LIST CMAKE_SWIG_FLAGS) - set (SWIG_MODULE_${name}_NOPROXY TRUE) - endif () - - if (SWIG_MODULE_${name}_NOPROXY AND - NOT ("-noproxy" IN_LIST CMAKE_SWIG_FLAGS OR "-noproxy" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS)) - list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-noproxy") - endif() - if(SWIG_MODULE_${name}_LANGUAGE STREQUAL "UNKNOWN") - message(FATAL_ERROR "SWIG Error: Language \"${language}\" not found") - elseif(SWIG_MODULE_${name}_LANGUAGE STREQUAL "PERL" AND - NOT "-shadow" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS) - list(APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-shadow") - endif() -endmacro() - -# -# For a given language, input file, and output file, determine extra files that -# will be generated. This is internal swig macro. -# - -function(SWIG_GET_EXTRA_OUTPUT_FILES language outfiles generatedpath infile) - set(files) - get_source_file_property(module_basename - "${infile}" SWIG_MODULE_NAME) - if(NOT module_basename) - - # try to get module name from "%module foo" syntax - if ( EXISTS "${infile}" ) - file ( STRINGS "${infile}" module_basename REGEX "[ ]*%module[ ]*[a-zA-Z0-9_]+.*" ) - endif () - if ( module_basename ) - string ( REGEX REPLACE "[ ]*%module[ ]*([a-zA-Z0-9_]+).*" "\\1" module_basename "${module_basename}" ) - - else () - # try to get module name from "%module (options=...) foo" syntax - if ( EXISTS "${infile}" ) - file ( STRINGS "${infile}" module_basename REGEX "[ ]*%module[ ]*\\(.*\\)[ ]*[a-zA-Z0-9_]+.*" ) - endif () - if ( module_basename ) - string ( REGEX REPLACE "[ ]*%module[ ]*\\(.*\\)[ ]*([a-zA-Z0-9_]+).*" "\\1" module_basename "${module_basename}" ) - - else () - # fallback to file basename - get_filename_component(module_basename "${infile}" NAME_WE) - endif () - endif () - - endif() - foreach(it ${SWIG_${language}_EXTRA_FILE_EXTENSIONS}) - set(extra_file "${generatedpath}/${module_basename}${it}") - if (extra_file MATCHES "\\.cs$" AND CMAKE_CSharp_COMPILER_LOADED) - set_source_files_properties(${extra_file} PROPERTIES LANGUAGE "CSharp") - else() - # Treat extra outputs as plain files regardless of language. - set_source_files_properties(${extra_file} PROPERTIES LANGUAGE "") - endif() - list(APPEND files "${extra_file}") - endforeach() - - set (${outfiles} ${files} PARENT_SCOPE) -endfunction() - -# -# Take swig (*.i) file and add proper custom commands for it -# -function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) - get_filename_component(swig_source_file_name_we "${infile}" NAME_WE) - get_source_file_property(swig_source_file_cplusplus "${infile}" CPLUSPLUS) - - # If CMAKE_SWIG_OUTDIR was specified then pass it to -outdir - if(CMAKE_SWIG_OUTDIR) - set(outdir ${CMAKE_SWIG_OUTDIR}) - else() - set(outdir ${CMAKE_CURRENT_BINARY_DIR}) - endif() - - if(SWIG_OUTFILE_DIR) - set(outfiledir ${SWIG_OUTFILE_DIR}) - else() - set(outfiledir ${outdir}) - endif() - - if(SWIG_WORKING_DIR) - set (workingdir "${SWIG_WORKING_DIR}") - else() - set(workingdir "${outdir}") - endif() - - if(SWIG_TARGET_NAME) - set(target_name ${SWIG_TARGET_NAME}) - else() - set(target_name ${name}) - endif() - - set (swig_source_file_flags ${CMAKE_SWIG_FLAGS}) - # handle various swig compile flags properties - get_source_file_property (include_directories "${infile}" INCLUDE_DIRECTORIES) - if (include_directories) - list (APPEND swig_source_file_flags "$<$:-I$-I>>") - endif() - set (property "$") - list (APPEND swig_source_file_flags "$<$:-I$,$-I>>") - set (property "$") - get_source_file_property(use_target_include_dirs "${infile}" USE_TARGET_INCLUDE_DIRECTORIES) - if (use_target_include_dirs) - list (APPEND swig_source_file_flags "$<$:-I$-I>>") - elseif(use_target_include_dirs STREQUAL "NOTFOUND") - # not defined at source level, rely on target level - list (APPEND swig_source_file_flags "$<$>,$>:-I$-I>>") - endif() - - set (property "$") - list (APPEND swig_source_file_flags "$<$:-D$,$-D>>") - get_source_file_property (compile_definitions "${infile}" COMPILE_DEFINITIONS) - if (compile_definitions) - list (APPEND swig_source_file_flags "$<$:-D$-D>>") - endif() - - list (APPEND swig_source_file_flags "$>") - get_source_file_property (compile_options "${infile}" COMPILE_OPTIONS) - if (compile_options) - list (APPEND swig_source_file_flags ${compile_options}) - endif() - - # legacy support - get_source_file_property (swig_flags "${infile}" SWIG_FLAGS) - if (swig_flags) - list (APPEND swig_source_file_flags ${swig_flags}) - endif() - - get_filename_component(swig_source_file_fullname "${infile}" ABSOLUTE) - - if (NOT SWIG_MODULE_${name}_NOPROXY) - SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE} - swig_extra_generated_files - "${outdir}" - "${swig_source_file_fullname}") - endif() - set(swig_generated_file_fullname - "${outfiledir}/${swig_source_file_name_we}") - # add the language into the name of the file (i.e. TCL_wrap) - # this allows for the same .i file to be wrapped into different languages - string(APPEND swig_generated_file_fullname - "${SWIG_MODULE_${name}_LANGUAGE}_wrap") - - if(swig_source_file_cplusplus) - string(APPEND swig_generated_file_fullname - ".${SWIG_CXX_EXTENSION}") - else() - string(APPEND swig_generated_file_fullname - ".c") - endif() - - get_directory_property (cmake_include_directories INCLUDE_DIRECTORIES) - list (REMOVE_DUPLICATES cmake_include_directories) - set (swig_include_dirs) - if (cmake_include_directories) - set (swig_include_dirs "$<$:-I$-I>>") - endif() - - set(swig_special_flags) - # default is c, so add c++ flag if it is c++ - if(swig_source_file_cplusplus) - list (APPEND swig_special_flags "-c++") - endif() - - if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.14) - cmake_policy(GET CMP0086 module_name_policy) - else() - set(module_name_policy "0LD") - endif() - if (module_name_policy STREQUAL "NEW") - get_source_file_property(module_name "${infile}" SWIG_MODULE_NAME) - if (module_name) - list (APPEND swig_special_flags "-module" "${module_name}") - endif() - else() - if (NOT module_name_policy) - if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.14) - cmake_policy(GET_WARNING CMP0086 _cmp0086_warning) - message(AUTHOR_WARNING "${_cmp0086_warning}\n") - else() - message(STATUS "CMP0086 Unsupported by this CMake version.") - endif() - endif() - endif() - - set (swig_extra_flags) - if(SWIG_MODULE_${name}_LANGUAGE STREQUAL "CSHARP") - if(NOT ("-dllimport" IN_LIST swig_source_file_flags OR "-dllimport" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS)) - # This makes sure that the name used in the generated DllImport - # matches the library name created by CMake - list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-dllimport" "${name}") - endif() - endif() - list (APPEND swig_extra_flags ${SWIG_MODULE_${name}_EXTRA_FLAGS}) - - # dependencies - set (swig_dependencies ${SWIG_MODULE_${name}_EXTRA_DEPS} $) - get_source_file_property(file_depends "${infile}" DEPENDS) - if (file_depends) - list (APPEND swig_dependencies ${file_depends}) - endif() - - if (UseSWIG_MODULE_VERSION VERSION_GREATER 1) - # as part of custom command, start by removing old generated files - # to ensure obsolete files do not stay - set (swig_file_outdir "${workingdir}/${swig_source_file_name_we}.files") - set (swig_cleanup_command COMMAND "${CMAKE_COMMAND}" "-DSUPPORT_FILES_WORKING_DIRECTORY=${swig_file_outdir}" "-DSUPPORT_FILES_OUTPUT_DIRECTORY=${outdir}" -DACTION=CLEAN -P "${SWIG_MANAGE_SUPPORT_FILES_SCRIPT}") - set (swig_copy_command COMMAND "${CMAKE_COMMAND}" "-DSUPPORT_FILES_WORKING_DIRECTORY=${swig_file_outdir}" "-DSUPPORT_FILES_OUTPUT_DIRECTORY=${outdir}" -DACTION=COPY -P "${SWIG_MANAGE_SUPPORT_FILES_SCRIPT}") - else() - set (swig_file_outdir "${outdir}") - unset (swig_cleanup_command) - unset (swig_copy_command) - endif() - - # IMPLICIT_DEPENDS below can not handle situations where a dependent file is - # removed. We need an extra step with timestamp and custom target, see #16830 - # As this is needed only for Makefile generator do it conditionally - if(CMAKE_GENERATOR MATCHES "Make") - __swig_compute_timestamp(${name} ${SWIG_MODULE_${name}_LANGUAGE} - "${infile}" "${workingdir}" swig_generated_timestamp) - set(swig_custom_output "${swig_generated_timestamp}") - set(swig_custom_products - BYPRODUCTS "${swig_generated_file_fullname}" ${swig_extra_generated_files}) - set(swig_timestamp_command - COMMAND ${CMAKE_COMMAND} -E touch "${swig_generated_timestamp}") - else() - set(swig_custom_output - "${swig_generated_file_fullname}" ${swig_extra_generated_files}) - set(swig_custom_products) - set(swig_timestamp_command) - endif() - add_custom_command( - OUTPUT ${swig_custom_output} - ${swig_custom_products} - ${swig_cleanup_command} - # Let's create the ${outdir} at execution time, in case dir contains $(OutDir) - COMMAND "${CMAKE_COMMAND}" -E make_directory ${outdir} ${outfiledir} - ${swig_timestamp_command} - COMMAND "${CMAKE_COMMAND}" -E env "SWIG_LIB=${SWIG_DIR}" "${SWIG_EXECUTABLE}" - "-${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}" - "${swig_source_file_flags}" - -outdir "${swig_file_outdir}" - ${swig_special_flags} - ${swig_extra_flags} - "${swig_include_dirs}" - -o "${swig_generated_file_fullname}" - "${swig_source_file_fullname}" - ${swig_copy_command} - MAIN_DEPENDENCY "${swig_source_file_fullname}" - DEPENDS ${swig_dependencies} - IMPLICIT_DEPENDS CXX "${swig_source_file_fullname}" - COMMENT "Swig compile ${infile} for ${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}" - COMMAND_EXPAND_LISTS) - set_source_files_properties("${swig_generated_file_fullname}" ${swig_extra_generated_files} - PROPERTIES GENERATED 1) - - ## add all properties for generated file to various properties - get_property (include_directories SOURCE "${infile}" PROPERTY GENERATED_INCLUDE_DIRECTORIES) - set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY INCLUDE_DIRECTORIES ${include_directories} $>) - - get_property (compile_definitions SOURCE "${infile}" PROPERTY GENERATED_COMPILE_DEFINITIONS) - set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY COMPILE_DEFINITIONS $> ${compile_definitions}) - - get_property (compile_options SOURCE "${infile}" PROPERTY GENERATED_COMPILE_OPTIONS) - set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY COMPILE_OPTIONS $> ${compile_options}) - - if (SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG MATCHES "php") - set_property (SOURCE "${swig_generated_file_fullname}" APPEND PROPERTY INCLUDE_DIRECTORIES "${outdir}") - endif() - - set(${outfiles} "${swig_generated_file_fullname}" ${swig_extra_generated_files} PARENT_SCOPE) - - # legacy support - set (swig_generated_file_fullname "${swig_generated_file_fullname}" PARENT_SCOPE) -endfunction() - -# -# Create Swig module -# -macro(SWIG_ADD_MODULE name language) - message(DEPRECATION "SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead.") - swig_add_library(${name} - LANGUAGE ${language} - TYPE MODULE - SOURCES ${ARGN}) -endmacro() - - -function(SWIG_ADD_LIBRARY name) - set(options NO_PROXY) - set(oneValueArgs LANGUAGE - TYPE - OUTPUT_DIR - OUTFILE_DIR) - set(multiValueArgs SOURCES) - cmake_parse_arguments(_SAM "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if (_SAM_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "SWIG_ADD_LIBRARY: ${_SAM_UNPARSED_ARGUMENTS}: unexpected arguments") - endif() - - if(NOT DEFINED _SAM_LANGUAGE) - message(FATAL_ERROR "SWIG_ADD_LIBRARY: Missing LANGUAGE argument") - endif() - - if(NOT DEFINED _SAM_SOURCES) - message(FATAL_ERROR "SWIG_ADD_LIBRARY: Missing SOURCES argument") - endif() - - if(NOT DEFINED _SAM_TYPE) - set(_SAM_TYPE MODULE) - elseif(_SAM_TYPE STREQUAL "USE_BUILD_SHARED_LIBS") - unset(_SAM_TYPE) - endif() - - if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.13) - cmake_policy(GET CMP0078 target_name_policy) - else() - set(target_name_policy "OLD") - endif() - if (target_name_policy STREQUAL "NEW") - set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD) - else() - if (NOT target_name_policy) - if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.14) - cmake_policy(GET_WARNING CMP0078 _cmp0078_warning) - message(AUTHOR_WARNING "${_cmp0078_warning}\n") - else() - message(STATUS "CMP0078 Unsupported by this CMake version.") - endif() - endif() - if (NOT DEFINED UseSWIG_TARGET_NAME_PREFERENCE) - set (UseSWIG_TARGET_NAME_PREFERENCE LEGACY) - elseif (NOT UseSWIG_TARGET_NAME_PREFERENCE MATCHES "^(LEGACY|STANDARD)$") - message (FATAL_ERROR "UseSWIG_TARGET_NAME_PREFERENCE: ${UseSWIG_TARGET_NAME_PREFERENCE}: invalid value. 'LEGACY' or 'STANDARD' is expected.") - endif() - endif() - - if (NOT DEFINED UseSWIG_MODULE_VERSION) - set (UseSWIG_MODULE_VERSION 1) - elseif (NOT UseSWIG_MODULE_VERSION MATCHES "^(1|2)$") - message (FATAL_ERROR "UseSWIG_MODULE_VERSION: ${UseSWIG_MODULE_VERSION}: invalid value. 1 or 2 is expected.") - endif() - - set (SWIG_MODULE_${name}_NOPROXY ${_SAM_NO_PROXY}) - swig_module_initialize(${name} ${_SAM_LANGUAGE}) - - # compute real target name. - if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "LEGACY" AND - SWIG_MODULE_${name}_LANGUAGE STREQUAL "PYTHON" AND NOT SWIG_MODULE_${name}_NOPROXY) - # swig will produce a module.py containing an 'import _modulename' statement, - # which implies having a corresponding _modulename.so (*NIX), _modulename.pyd (Win32), - # unless the -noproxy flag is used - set(target_name "_${name}") - else() - set(target_name "${name}") - endif() - - if (TARGET ${target_name}) - # a target with same name is already defined. - # call NOW add_library command to raise the most useful error message - add_library(${target_name}) - return() - endif() - - set (workingdir "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}.dir") - # set special variable to pass extra information to command SWIG_ADD_SOURCE_TO_MODULE - # which cannot be changed due to legacy compatibility - set (SWIG_WORKING_DIR "${workingdir}") - set (SWIG_TARGET_NAME "${target_name}") - - set (outputdir "${_SAM_OUTPUT_DIR}") - if (NOT _SAM_OUTPUT_DIR) - if (CMAKE_SWIG_OUTDIR) - set (outputdir "${CMAKE_SWIG_OUTDIR}") - else() - if (UseSWIG_MODULE_VERSION VERSION_GREATER 1) - set (outputdir "${workingdir}/${_SAM_LANGUAGE}.files") - else() - set (outputdir "${CMAKE_CURRENT_BINARY_DIR}") - endif() - endif() - endif() - - set (outfiledir "${_SAM_OUTFILE_DIR}") - if(NOT _SAM_OUTFILE_DIR) - if (SWIG_OUTFILE_DIR) - set (outfiledir "${SWIG_OUTFILE_DIR}") - else() - if (_SAM_OUTPUT_DIR OR CMAKE_SWIG_OUTDIR) - set (outfiledir "${outputdir}") - else() - set (outfiledir "${workingdir}") - endif() - endif() - endif() - # set again, locally, predefined variables to ensure compatibility - # with command SWIG_ADD_SOURCE_TO_MODULE - set(CMAKE_SWIG_OUTDIR "${outputdir}") - set(SWIG_OUTFILE_DIR "${outfiledir}") - - # See if the user has specified source extensions for swig files? - if (NOT DEFINED SWIG_SOURCE_FILE_EXTENSIONS) - # Assume the default (*.i) file extension for Swig source files - set(SWIG_SOURCE_FILE_EXTENSIONS ".i") - endif() - - # Generate a regex out of file extensions. - string(REGEX REPLACE "([$^.*+?|()-])" "\\\\\\1" swig_source_ext_regex "${SWIG_SOURCE_FILE_EXTENSIONS}") - list (JOIN swig_source_ext_regex "|" swig_source_ext_regex) - string (PREPEND swig_source_ext_regex "(") - string (APPEND swig_source_ext_regex ")$") - - set(swig_dot_i_sources ${_SAM_SOURCES}) - list(FILTER swig_dot_i_sources INCLUDE REGEX ${swig_source_ext_regex}) - if (NOT swig_dot_i_sources) - message(FATAL_ERROR "SWIG_ADD_LIBRARY: no SWIG interface files specified") - endif() - set(swig_other_sources ${_SAM_SOURCES}) - list(REMOVE_ITEM swig_other_sources ${swig_dot_i_sources}) - - set(swig_generated_sources) - set(swig_generated_timestamps) - foreach(swig_it IN LISTS swig_dot_i_sources) - SWIG_ADD_SOURCE_TO_MODULE(${name} swig_generated_source "${swig_it}") - list (APPEND swig_generated_sources "${swig_generated_source}") - if(CMAKE_GENERATOR MATCHES "Make") - __swig_compute_timestamp(${name} ${SWIG_MODULE_${name}_LANGUAGE} "${swig_it}" - "${workingdir}" swig_timestamp) - list (APPEND swig_generated_timestamps "${swig_timestamp}") - endif() - endforeach() - set_property (DIRECTORY APPEND PROPERTY - ADDITIONAL_MAKE_CLEAN_FILES ${swig_generated_sources} ${swig_generated_timestamps}) - if (UseSWIG_MODULE_VERSION VERSION_GREATER 1) - set_property (DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${outputdir}") - endif() - - add_library(${target_name} - ${_SAM_TYPE} - ${swig_generated_sources} - ${swig_other_sources}) - if(CMAKE_GENERATOR MATCHES "Make") - # see IMPLICIT_DEPENDS above - add_custom_target(${name}_swig_compilation DEPENDS ${swig_generated_timestamps}) - add_dependencies(${target_name} ${name}_swig_compilation) - endif() - if(_SAM_TYPE STREQUAL "MODULE") - set_target_properties(${target_name} PROPERTIES NO_SONAME ON) - endif() - string(TOLOWER "${_SAM_LANGUAGE}" swig_lowercase_language) - if (swig_lowercase_language STREQUAL "octave") - set_target_properties(${target_name} PROPERTIES PREFIX "") - set_target_properties(${target_name} PROPERTIES SUFFIX ".oct") - elseif (swig_lowercase_language STREQUAL "go") - set_target_properties(${target_name} PROPERTIES PREFIX "") - elseif (swig_lowercase_language STREQUAL "java") - # In java you want: - # System.loadLibrary("LIBRARY"); - # then JNI will look for a library whose name is platform dependent, namely - # MacOS : libLIBRARY.jnilib - # Windows: LIBRARY.dll - # Linux : libLIBRARY.so - if (APPLE) - set_target_properties (${target_name} PROPERTIES SUFFIX ".jnilib") - endif() - if ((WIN32 AND MINGW) OR CYGWIN OR CMAKE_SYSTEM_NAME STREQUAL MSYS) - set_target_properties(${target_name} PROPERTIES PREFIX "") - endif() - elseif (swig_lowercase_language STREQUAL "lua") - if(_SAM_TYPE STREQUAL "MODULE") - set_target_properties(${target_name} PROPERTIES PREFIX "") - endif() - elseif (swig_lowercase_language STREQUAL "python") - if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "STANDARD" AND NOT SWIG_MODULE_${name}_NOPROXY) - # swig will produce a module.py containing an 'import _modulename' statement, - # which implies having a corresponding _modulename.so (*NIX), _modulename.pyd (Win32), - # unless the -noproxy flag is used - set_target_properties(${target_name} PROPERTIES PREFIX "_") - else() - set_target_properties(${target_name} PROPERTIES PREFIX "") - endif() - # Python extension modules on Windows must have the extension ".pyd" - # instead of ".dll" as of Python 2.5. Older python versions do support - # this suffix. - # http://docs.python.org/whatsnew/ports.html#SECTION0001510000000000000000 - # - # Windows: .dll is no longer supported as a filename extension for extension modules. - # .pyd is now the only filename extension that will be searched for. - # - if(WIN32 AND NOT CYGWIN) - set_target_properties(${target_name} PROPERTIES SUFFIX ".pyd") - endif() - elseif (swig_lowercase_language STREQUAL "r") - set_target_properties(${target_name} PROPERTIES PREFIX "") - elseif (swig_lowercase_language STREQUAL "ruby") - # In ruby you want: - # require 'LIBRARY' - # then ruby will look for a library whose name is platform dependent, namely - # MacOS : LIBRARY.bundle - # Windows: LIBRARY.dll - # Linux : LIBRARY.so - set_target_properties (${target_name} PROPERTIES PREFIX "") - if (APPLE) - set_target_properties (${target_name} PROPERTIES SUFFIX ".bundle") - endif () - elseif (swig_lowercase_language STREQUAL "perl") - # assume empty prefix because we expect the module to be dynamically loaded - set_target_properties (${target_name} PROPERTIES PREFIX "") - if (APPLE) - set_target_properties (${target_name} PROPERTIES SUFFIX ".dylib") - endif () - else() - # assume empty prefix because we expect the module to be dynamically loaded - set_target_properties (${target_name} PROPERTIES PREFIX "") - endif () - - # target property SWIG_SUPPORT_FILES_DIRECTORY specify output directory of support files - set_property (TARGET ${target_name} PROPERTY SWIG_SUPPORT_FILES_DIRECTORY "${outputdir}") - # target property SWIG_SUPPORT_FILES lists principal proxy support files - if (NOT SWIG_MODULE_${name}_NOPROXY) - string(TOUPPER "${_SAM_LANGUAGE}" swig_uppercase_language) - set(swig_all_support_files) - foreach (swig_it IN LISTS SWIG_${swig_uppercase_language}_EXTRA_FILE_EXTENSIONS) - set (swig_support_files ${swig_generated_sources}) - list (FILTER swig_support_files INCLUDE REGEX ".*${swig_it}$") - list(APPEND swig_all_support_files ${swig_support_files}) - endforeach() - if (swig_all_support_files) - list(REMOVE_DUPLICATES swig_all_support_files) - endif() - set_property (TARGET ${target_name} PROPERTY SWIG_SUPPORT_FILES ${swig_all_support_files}) - endif() - - # to ensure legacy behavior, export some variables - set (SWIG_MODULE_${name}_LANGUAGE "${SWIG_MODULE_${name}_LANGUAGE}" PARENT_SCOPE) - set (SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG "${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}" PARENT_SCOPE) - set (SWIG_MODULE_${name}_REAL_NAME "${target_name}" PARENT_SCOPE) - set (SWIG_MODULE_${name}_NOPROXY "${SWIG_MODULE_${name}_NOPROXY}" PARENT_SCOPE) - set (SWIG_MODULE_${name}_EXTRA_FLAGS "${SWIG_MODULE_${name}_EXTRA_FLAGS}" PARENT_SCOPE) - # the last one is a bit crazy but it is documented, so... - # NOTA: works as expected if only ONE input file is specified - set (swig_generated_file_fullname "${swig_generated_file_fullname}" PARENT_SCOPE) -endfunction() - -# -# Like TARGET_LINK_LIBRARIES but for swig modules -# -function(SWIG_LINK_LIBRARIES name) - if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "STANDARD") - message(DEPRECATION "SWIG_LINK_LIBRARIES is deprecated. Use TARGET_LINK_LIBRARIES instead.") - target_link_libraries(${name} ${ARGN}) - else() - if(SWIG_MODULE_${name}_REAL_NAME) - target_link_libraries(${SWIG_MODULE_${name}_REAL_NAME} ${ARGN}) - else() - message(SEND_ERROR "Cannot find Swig library \"${name}\".") - endif() - endif() -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/WriteBasicConfigVersionFile.cmake b/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/WriteBasicConfigVersionFile.cmake deleted file mode 100644 index 45f9e587a55..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/Modules/WriteBasicConfigVersionFile.cmake +++ /dev/null @@ -1,51 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -WriteBasicConfigVersionFile ---------------------------- - -.. deprecated:: 3.0 - - Use the identical command :command:`write_basic_package_version_file()` - from module :module:`CMakePackageConfigHelpers`. - -:: - - WRITE_BASIC_CONFIG_VERSION_FILE( filename - [VERSION major.minor.patch] - COMPATIBILITY (AnyNewerVersion|SameMajorVersion|SameMinorVersion|ExactVersion) - [ARCH_INDEPENDENT] - ) - - -#]=======================================================================] - -function(WRITE_BASIC_CONFIG_VERSION_FILE _filename) - - set(options ARCH_INDEPENDENT ) - set(oneValueArgs VERSION COMPATIBILITY ) - set(multiValueArgs ) - - cmake_parse_arguments(CVF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if(CVF_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unknown keywords given to WRITE_BASIC_CONFIG_VERSION_FILE(): \"${CVF_UNPARSED_ARGUMENTS}\"") - endif() - - set(versionTemplateFile "${CMAKE_ROOT}/Modules/BasicConfigVersion-${CVF_COMPATIBILITY}.cmake.in") - if(NOT EXISTS "${versionTemplateFile}") - message(FATAL_ERROR "Bad COMPATIBILITY value used for WRITE_BASIC_CONFIG_VERSION_FILE(): \"${CVF_COMPATIBILITY}\"") - endif() - - if("${CVF_VERSION}" STREQUAL "") - if ("${PROJECT_VERSION}" STREQUAL "") - message(FATAL_ERROR "No VERSION specified for WRITE_BASIC_CONFIG_VERSION_FILE()") - else() - set(CVF_VERSION "${PROJECT_VERSION}") - endif() - endif() - - configure_file("${versionTemplateFile}" "${_filename}" @ONLY) - -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.14/README b/extern/ycm/ycm-0.11.0/cmake-3.14/README deleted file mode 100644 index 62c8ca27673..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.14/README +++ /dev/null @@ -1,11 +0,0 @@ -Files in this folder and its subfolder come from CMake git repository -(ref v3.14.7): - - git://cmake.org/cmake.git - -They were imported exactly as they are on the original repository, in -order to supply the new features and bugfix available in newer releases -to user with older cmake releases. - -These files are distributed under the OSI-approved BSD License; -see accompanying file Copyright.txt for details. diff --git a/extern/ycm/ycm-0.11.0/cmake-3.15/Copyright.txt b/extern/ycm/ycm-0.11.0/cmake-3.15/Copyright.txt deleted file mode 100644 index f2362144a1c..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.15/Copyright.txt +++ /dev/null @@ -1,131 +0,0 @@ -CMake - Cross Platform Makefile Generator -Copyright 2000-2019 Kitware, Inc. and Contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -* Neither the name of Kitware, Inc. nor the names of Contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ------------------------------------------------------------------------------- - -The following individuals and institutions are among the Contributors: - -* Aaron C. Meadows -* Adriaan de Groot -* Aleksey Avdeev -* Alexander Neundorf -* Alexander Smorkalov -* Alexey Sokolov -* Alex Merry -* Alex Turbov -* Andreas Pakulat -* Andreas Schneider -* André Rigland Brodtkorb -* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf -* Benjamin Eikel -* Bjoern Ricks -* Brad Hards -* Christopher Harvey -* Christoph Grüninger -* Clement Creusot -* Daniel Blezek -* Daniel Pfeifer -* Enrico Scholz -* Eran Ifrah -* Esben Mose Hansen, Ange Optimization ApS -* Geoffrey Viola -* Google Inc -* Gregor Jasny -* Helio Chissini de Castro -* Ilya Lavrenov -* Insight Software Consortium -* Jan Woetzel -* Julien Schueller -* Kelly Thompson -* Laurent Montel -* Konstantin Podsvirov -* Mario Bensi -* Martin Gräßlin -* Mathieu Malaterre -* Matthaeus G. Chajdas -* Matthias Kretz -* Matthias Maennich -* Michael Hirsch, Ph.D. -* Michael Stürmer -* Miguel A. Figueroa-Villanueva -* Mike Jackson -* Mike McQuaid -* Nicolas Bock -* Nicolas Despres -* Nikita Krupen'ko -* NVIDIA Corporation -* OpenGamma Ltd. -* Patrick Stotko -* Per Øyvind Karlsen -* Peter Collingbourne -* Petr Gotthard -* Philip Lowman -* Philippe Proulx -* Raffi Enficiaud, Max Planck Society -* Raumfeld -* Roger Leigh -* Rolf Eike Beer -* Roman Donchenko -* Roman Kharitonov -* Ruslan Baratov -* Sebastian Holtermann -* Stephen Kelly -* Sylvain Joubert -* Thomas Sondergaard -* Tobias Hunger -* Todd Gamblin -* Tristan Carel -* University of Dundee -* Vadim Zhukov -* Will Dicharry - -See version control history for details of individual contributions. - -The above copyright and license notice applies to distributions of -CMake in source and binary form. Third-party software packages supplied -with CMake under compatible licenses provide their own copyright notices -documented in corresponding subdirectories or source files. - ------------------------------------------------------------------------------- - -CMake was initially developed by Kitware with the following sponsorship: - - * National Library of Medicine at the National Institutes of Health - as part of the Insight Segmentation and Registration Toolkit (ITK). - - * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel - Visualization Initiative. - - * National Alliance for Medical Image Computing (NAMIC) is funded by the - National Institutes of Health through the NIH Roadmap for Medical Research, - Grant U54 EB005149. - - * Kitware, Inc. diff --git a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/CMakeParseArguments.cmake b/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/CMakeParseArguments.cmake deleted file mode 100644 index c753b7f51fc..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/CMakeParseArguments.cmake +++ /dev/null @@ -1,12 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -CMakeParseArguments -------------------- - -This module once implemented the :command:`cmake_parse_arguments` command -that is now implemented natively by CMake. It is now an empty placeholder -for compatibility with projects that include it to get the command from -CMake 3.4 and lower. -#]=======================================================================] diff --git a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindGLEW.cmake b/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindGLEW.cmake deleted file mode 100644 index bd69819646a..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindGLEW.cmake +++ /dev/null @@ -1,342 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindGLEW --------- - -Find the OpenGL Extension Wrangler Library (GLEW) - -Input Variables -^^^^^^^^^^^^^^^ - -The following variables may be set to influence this module’s behavior: - -``GLEW_USE_STATIC_LIBS`` - to find and create :prop_tgt:`IMPORTED` target for static linkage. - -``GLEW_VERBOSE`` - to output a detailed log of this module. - -Imported Targets -^^^^^^^^^^^^^^^^ - -This module defines the following :ref:`Imported Targets `: - - -``GLEW::glew`` - The GLEW shared library. -``GLEW::glew_s`` - The GLEW static library, if ``GLEW_USE_STATIC_LIBS`` is set to ``TRUE``. -``GLEW::GLEW`` - Duplicates either ``GLEW::glew`` or ``GLEW::glew_s`` based on availability. - -Result Variables -^^^^^^^^^^^^^^^^ - -This module defines the following variables: - -``GLEW_INCLUDE_DIRS`` - include directories for GLEW -``GLEW_LIBRARIES`` - libraries to link against GLEW -``GLEW_SHARED_LIBRARIES`` - libraries to link against shared GLEW -``GLEW_STATIC_LIBRARIES`` - libraries to link against static GLEW -``GLEW_FOUND`` - true if GLEW has been found and can be used -``GLEW_VERSION`` - GLEW version -``GLEW_VERSION_MAJOR`` - GLEW major version -``GLEW_VERSION_MINOR`` - GLEW minor version -``GLEW_VERSION_MICRO`` - GLEW micro version - -#]=======================================================================] - -include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) - -find_package(GLEW CONFIG QUIET) - -if(GLEW_FOUND) - find_package_handle_standard_args(GLEW DEFAULT_MSG GLEW_CONFIG) - return() -endif() - -if(GLEW_VERBOSE) - message(STATUS "FindGLEW: did not find GLEW CMake config file. Searching for libraries.") -endif() - -if(APPLE) - find_package(OpenGL QUIET) - - if(OpenGL_FOUND) - if(GLEW_VERBOSE) - message(STATUS "FindGLEW: Found OpenGL Framework.") - message(STATUS "FindGLEW: OPENGL_LIBRARIES: ${OPENGL_LIBRARIES}") - endif() - else() - if(GLEW_VERBOSE) - message(STATUS "FindGLEW: could not find GLEW library.") - endif() - return() - endif() -endif() - - -function(__glew_set_find_library_suffix shared_or_static) - if((UNIX AND NOT APPLE) AND "${shared_or_static}" MATCHES "SHARED") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" PARENT_SCOPE) - elseif((UNIX AND NOT APPLE) AND "${shared_or_static}" MATCHES "STATIC") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" PARENT_SCOPE) - elseif(APPLE AND "${shared_or_static}" MATCHES "SHARED") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib;.so" PARENT_SCOPE) - elseif(APPLE AND "${shared_or_static}" MATCHES "STATIC") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" PARENT_SCOPE) - elseif(WIN32 AND "${shared_or_static}" MATCHES "SHARED") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" PARENT_SCOPE) - elseif(WIN32 AND "${shared_or_static}" MATCHES "STATIC") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib;.dll.a" PARENT_SCOPE) - endif() - - if(GLEW_VERBOSE) - message(STATUS "FindGLEW: CMAKE_FIND_LIBRARY_SUFFIXES for ${shared_or_static}: ${CMAKE_FIND_LIBRARY_SUFFIXES}") - endif() -endfunction() - - -if(GLEW_VERBOSE) - if(DEFINED GLEW_USE_STATIC_LIBS) - message(STATUS "FindGLEW: GLEW_USE_STATIC_LIBS: ${GLEW_USE_STATIC_LIBS}.") - else() - message(STATUS "FindGLEW: GLEW_USE_STATIC_LIBS is undefined. Treated as FALSE.") - endif() -endif() - -find_path(GLEW_INCLUDE_DIR GL/glew.h) -mark_as_advanced(GLEW_INCLUDE_DIR) - -set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR}) - -if(GLEW_VERBOSE) - message(STATUS "FindGLEW: GLEW_INCLUDE_DIR: ${GLEW_INCLUDE_DIR}") - message(STATUS "FindGLEW: GLEW_INCLUDE_DIRS: ${GLEW_INCLUDE_DIRS}") -endif() - -if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64" OR "${CMAKE_GENERATOR}" MATCHES "Win64") - set(_arch "x64") -else() - set(_arch "Win32") -endif() - - -set(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) - -__glew_set_find_library_suffix(SHARED) - -find_library(GLEW_SHARED_LIBRARY_RELEASE - NAMES GLEW glew glew32 - PATH_SUFFIXES lib lib64 libx32 lib/Release/${_arch} - PATHS ENV GLEW_ROOT) - -find_library(GLEW_SHARED_LIBRARY_DEBUG - NAMES GLEWd glewd glew32d - PATH_SUFFIXES lib lib64 - PATHS ENV GLEW_ROOT) - - -__glew_set_find_library_suffix(STATIC) - -find_library(GLEW_STATIC_LIBRARY_RELEASE - NAMES GLEW glew glew32s - PATH_SUFFIXES lib lib64 libx32 lib/Release/${_arch} - PATHS ENV GLEW_ROOT) - -find_library(GLEW_STATIC_LIBRARY_DEBUG - NAMES GLEWds glewds glew32ds - PATH_SUFFIXES lib lib64 - PATHS ENV GLEW_ROOT) - -set(CMAKE_FIND_LIBRARY_SUFFIXES ${__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES}) -unset(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES) - -include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) - -select_library_configurations(GLEW_SHARED) -select_library_configurations(GLEW_STATIC) - -if(NOT GLEW_USE_STATIC_LIBS) - set(GLEW_LIBRARIES ${GLEW_SHARED_LIBRARY}) -else() - set(GLEW_LIBRARIES ${GLEW_STATIC_LIBRARY}) -endif() - - -if(GLEW_VERBOSE) - message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY_RELEASE: ${GLEW_SHARED_LIBRARY_RELEASE}") - message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY_RELEASE: ${GLEW_STATIC_LIBRARY_RELEASE}") - message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY_DEBUG: ${GLEW_SHARED_LIBRARY_DEBUG}") - message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY_DEBUG: ${GLEW_STATIC_LIBRARY_DEBUG}") - message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY: ${GLEW_SHARED_LIBRARY}") - message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY: ${GLEW_STATIC_LIBRARY}") - message(STATUS "FindGLEW: GLEW_LIBRARIES: ${GLEW_LIBRARIES}") -endif() - - -# Read version from GL/glew.h file -if(EXISTS "${GLEW_INCLUDE_DIR}/GL/glew.h") - file(STRINGS "${GLEW_INCLUDE_DIR}/GL/glew.h" _contents REGEX "^VERSION_.+ [0-9]+") - if(_contents) - string(REGEX REPLACE ".*VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MAJOR "${_contents}") - string(REGEX REPLACE ".*VERSION_MINOR[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MINOR "${_contents}") - string(REGEX REPLACE ".*VERSION_MICRO[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MICRO "${_contents}") - set(GLEW_VERSION "${GLEW_VERSION_MAJOR}.${GLEW_VERSION_MINOR}.${GLEW_VERSION_MICRO}") - endif() -endif() - -if(GLEW_VERBOSE) - message(STATUS "FindGLEW: GLEW_VERSION_MAJOR: ${GLEW_VERSION_MAJOR}") - message(STATUS "FindGLEW: GLEW_VERSION_MINOR: ${GLEW_VERSION_MINOR}") - message(STATUS "FindGLEW: GLEW_VERSION_MICRO: ${GLEW_VERSION_MICRO}") - message(STATUS "FindGLEW: GLEW_VERSION: ${GLEW_VERSION}") -endif() - -find_package_handle_standard_args(GLEW - REQUIRED_VARS GLEW_INCLUDE_DIRS GLEW_LIBRARIES - VERSION_VAR GLEW_VERSION) - -if(NOT GLEW_FOUND) - if(GLEW_VERBOSE) - message(STATUS "FindGLEW: could not find GLEW library.") - endif() - return() -endif() - - -if(NOT TARGET GLEW::glew AND NOT GLEW_USE_STATIC_LIBS) - if(GLEW_VERBOSE) - message(STATUS "FindGLEW: Creating GLEW::glew imported target.") - endif() - - add_library(GLEW::glew UNKNOWN IMPORTED) - - set_target_properties(GLEW::glew - PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}") - - if(APPLE) - set_target_properties(GLEW::glew - PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL) - endif() - - if(GLEW_SHARED_LIBRARY_RELEASE) - set_property(TARGET GLEW::glew - APPEND - PROPERTY IMPORTED_CONFIGURATIONS RELEASE) - - set_target_properties(GLEW::glew - PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_SHARED_LIBRARY_RELEASE}") - endif() - - if(GLEW_SHARED_LIBRARY_DEBUG) - set_property(TARGET GLEW::glew - APPEND - PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - - set_target_properties(GLEW::glew - PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_SHARED_LIBRARY_DEBUG}") - endif() - -elseif(NOT TARGET GLEW::glew_s AND GLEW_USE_STATIC_LIBS) - if(GLEW_VERBOSE) - message(STATUS "FindGLEW: Creating GLEW::glew_s imported target.") - endif() - - add_library(GLEW::glew_s UNKNOWN IMPORTED) - - set_target_properties(GLEW::glew_s - PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}") - - if(APPLE) - set_target_properties(GLEW::glew_s - PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL) - endif() - - if(GLEW_STATIC_LIBRARY_RELEASE) - set_property(TARGET GLEW::glew_s - APPEND - PROPERTY IMPORTED_CONFIGURATIONS RELEASE) - - set_target_properties(GLEW::glew_s - PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_STATIC_LIBRARY_RELEASE}") - endif() - - if(GLEW_STATIC_LIBRARY_DEBUG) - set_property(TARGET GLEW::glew_s - APPEND - PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - - set_target_properties(GLEW::glew_s - PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_STATIC_LIBRARY_DEBUG}") - endif() -endif() - -if(NOT TARGET GLEW::GLEW) - if(GLEW_VERBOSE) - message(STATUS "FindGLEW: Creating GLEW::GLEW imported target.") - endif() - - add_library(GLEW::GLEW UNKNOWN IMPORTED) - - set_target_properties(GLEW::GLEW - PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}") - - if(APPLE) - set_target_properties(GLEW::GLEW - PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL) - endif() - - if(TARGET GLEW::glew) - if(GLEW_SHARED_LIBRARY_RELEASE) - set_property(TARGET GLEW::GLEW - APPEND - PROPERTY IMPORTED_CONFIGURATIONS RELEASE) - - set_target_properties(GLEW::GLEW - PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_SHARED_LIBRARY_RELEASE}") - endif() - - if(GLEW_SHARED_LIBRARY_DEBUG) - set_property(TARGET GLEW::GLEW - APPEND - PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - - set_target_properties(GLEW::GLEW - PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_SHARED_LIBRARY_DEBUG}") - endif() - - elseif(TARGET GLEW::glew_s) - if(GLEW_STATIC_LIBRARY_RELEASE) - set_property(TARGET GLEW::GLEW - APPEND - PROPERTY IMPORTED_CONFIGURATIONS RELEASE) - - set_target_properties(GLEW::GLEW - PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_STATIC_LIBRARY_RELEASE}") - endif() - - if(GLEW_STATIC_LIBRARY_DEBUG AND GLEW_USE_STATIC_LIBS) - set_property(TARGET GLEW::GLEW - APPEND - PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - - set_target_properties(GLEW::GLEW - PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_STATIC_LIBRARY_DEBUG}") - endif() - - elseif(GLEW_VERBOSE) - message(WARNING "FindGLEW: no `GLEW::glew` or `GLEW::glew_s` target was created. Something went wrong in FindGLEW target creation.") - endif() -endif() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake b/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake deleted file mode 100644 index 1722d6aafbf..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake +++ /dev/null @@ -1,386 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindPackageHandleStandardArgs ------------------------------ - -This module provides a function intended to be used in :ref:`Find Modules` -implementing :command:`find_package()` calls. It handles the -``REQUIRED``, ``QUIET`` and version-related arguments of ``find_package``. -It also sets the ``_FOUND`` variable. The package is -considered found if all variables listed contain valid results, e.g. -valid filepaths. - -.. command:: find_package_handle_standard_args - - There are two signatures:: - - find_package_handle_standard_args( - (DEFAULT_MSG|) - ... - ) - - find_package_handle_standard_args( - [FOUND_VAR ] - [REQUIRED_VARS ...] - [VERSION_VAR ] - [HANDLE_COMPONENTS] - [CONFIG_MODE] - [FAIL_MESSAGE ] - ) - - The ``_FOUND`` variable will be set to ``TRUE`` if all - the variables ``...`` are valid and any optional - constraints are satisfied, and ``FALSE`` otherwise. A success or - failure message may be displayed based on the results and on - whether the ``REQUIRED`` and/or ``QUIET`` option was given to - the :command:`find_package` call. - - The options are: - - ``(DEFAULT_MSG|)`` - In the simple signature this specifies the failure message. - Use ``DEFAULT_MSG`` to ask for a default message to be computed - (recommended). Not valid in the full signature. - - ``FOUND_VAR `` - Obsolete. Specifies either ``_FOUND`` or - ``_FOUND`` as the result variable. This exists only - for compatibility with older versions of CMake and is now ignored. - Result variables of both names are always set for compatibility. - - ``REQUIRED_VARS ...`` - Specify the variables which are required for this package. - These may be named in the generated failure message asking the - user to set the missing variable values. Therefore these should - typically be cache entries such as ``FOO_LIBRARY`` and not output - variables like ``FOO_LIBRARIES``. - - ``VERSION_VAR `` - Specify the name of a variable that holds the version of the package - that has been found. This version will be checked against the - (potentially) specified required version given to the - :command:`find_package` call, including its ``EXACT`` option. - The default messages include information about the required - version and the version which has been actually found, both - if the version is ok or not. - - ``HANDLE_COMPONENTS`` - Enable handling of package components. In this case, the command - will report which components have been found and which are missing, - and the ``_FOUND`` variable will be set to ``FALSE`` - if any of the required components (i.e. not the ones listed after - the ``OPTIONAL_COMPONENTS`` option of :command:`find_package`) are - missing. - - ``CONFIG_MODE`` - Specify that the calling find module is a wrapper around a - call to ``find_package( NO_MODULE)``. This implies - a ``VERSION_VAR`` value of ``_VERSION``. The command - will automatically check whether the package configuration file - was found. - - ``FAIL_MESSAGE `` - Specify a custom failure message instead of using the default - generated message. Not recommended. - -Example for the simple signature: - -.. code-block:: cmake - - find_package_handle_standard_args(LibXml2 DEFAULT_MSG - LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR) - -The ``LibXml2`` package is considered to be found if both -``LIBXML2_LIBRARY`` and ``LIBXML2_INCLUDE_DIR`` are valid. -Then also ``LibXml2_FOUND`` is set to ``TRUE``. If it is not found -and ``REQUIRED`` was used, it fails with a -:command:`message(FATAL_ERROR)`, independent whether ``QUIET`` was -used or not. If it is found, success will be reported, including -the content of the first ````. On repeated CMake runs, -the same message will not be printed again. - -Example for the full signature: - -.. code-block:: cmake - - find_package_handle_standard_args(LibArchive - REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR - VERSION_VAR LibArchive_VERSION) - -In this case, the ``LibArchive`` package is considered to be found if -both ``LibArchive_LIBRARY`` and ``LibArchive_INCLUDE_DIR`` are valid. -Also the version of ``LibArchive`` will be checked by using the version -contained in ``LibArchive_VERSION``. Since no ``FAIL_MESSAGE`` is given, -the default messages will be printed. - -Another example for the full signature: - -.. code-block:: cmake - - find_package(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4) - find_package_handle_standard_args(Automoc4 CONFIG_MODE) - -In this case, a ``FindAutmoc4.cmake`` module wraps a call to -``find_package(Automoc4 NO_MODULE)`` and adds an additional search -directory for ``automoc4``. Then the call to -``find_package_handle_standard_args`` produces a proper success/failure -message. -#]=======================================================================] - -include(${CMAKE_CURRENT_LIST_DIR}/FindPackageMessage.cmake) - -# internal helper macro -macro(_FPHSA_FAILURE_MESSAGE _msg) - if (${_NAME}_FIND_REQUIRED) - message(FATAL_ERROR "${_msg}") - else () - if (NOT ${_NAME}_FIND_QUIETLY) - message(STATUS "${_msg}") - endif () - endif () -endmacro() - - -# internal helper macro to generate the failure message when used in CONFIG_MODE: -macro(_FPHSA_HANDLE_FAILURE_CONFIG_MODE) - # _CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found: - if(${_NAME}_CONFIG) - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing:${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})") - else() - # If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version. - # List them all in the error message: - if(${_NAME}_CONSIDERED_CONFIGS) - set(configsText "") - list(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount) - math(EXPR configsCount "${configsCount} - 1") - foreach(currentConfigIndex RANGE ${configsCount}) - list(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename) - list(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version) - string(APPEND configsText " ${filename} (version ${version})\n") - endforeach() - if (${_NAME}_NOT_FOUND_MESSAGE) - string(APPEND configsText " Reason given by package: ${${_NAME}_NOT_FOUND_MESSAGE}\n") - endif() - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:\n${configsText}") - - else() - # Simple case: No Config-file was found at all: - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}") - endif() - endif() -endmacro() - - -function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG) - -# Set up the arguments for `cmake_parse_arguments`. - set(options CONFIG_MODE HANDLE_COMPONENTS) - set(oneValueArgs FAIL_MESSAGE VERSION_VAR FOUND_VAR) - set(multiValueArgs REQUIRED_VARS) - -# Check whether we are in 'simple' or 'extended' mode: - set(_KEYWORDS_FOR_EXTENDED_MODE ${options} ${oneValueArgs} ${multiValueArgs} ) - list(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX) - - if(${INDEX} EQUAL -1) - set(FPHSA_FAIL_MESSAGE ${_FIRST_ARG}) - set(FPHSA_REQUIRED_VARS ${ARGN}) - set(FPHSA_VERSION_VAR) - else() - cmake_parse_arguments(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${_FIRST_ARG} ${ARGN}) - - if(FPHSA_UNPARSED_ARGUMENTS) - message(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"") - endif() - - if(NOT FPHSA_FAIL_MESSAGE) - set(FPHSA_FAIL_MESSAGE "DEFAULT_MSG") - endif() - - # In config-mode, we rely on the variable _CONFIG, which is set by find_package() - # when it successfully found the config-file, including version checking: - if(FPHSA_CONFIG_MODE) - list(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG) - list(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS) - set(FPHSA_VERSION_VAR ${_NAME}_VERSION) - endif() - - if(NOT FPHSA_REQUIRED_VARS) - message(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()") - endif() - endif() - -# now that we collected all arguments, process them - - if("x${FPHSA_FAIL_MESSAGE}" STREQUAL "xDEFAULT_MSG") - set(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}") - endif() - - list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR) - - string(TOUPPER ${_NAME} _NAME_UPPER) - string(TOLOWER ${_NAME} _NAME_LOWER) - - if(FPHSA_FOUND_VAR) - if(FPHSA_FOUND_VAR MATCHES "^${_NAME}_FOUND$" OR FPHSA_FOUND_VAR MATCHES "^${_NAME_UPPER}_FOUND$") - set(_FOUND_VAR ${FPHSA_FOUND_VAR}) - else() - message(FATAL_ERROR "The argument for FOUND_VAR is \"${FPHSA_FOUND_VAR}\", but only \"${_NAME}_FOUND\" and \"${_NAME_UPPER}_FOUND\" are valid names.") - endif() - else() - set(_FOUND_VAR ${_NAME_UPPER}_FOUND) - endif() - - # collect all variables which were not found, so they can be printed, so the - # user knows better what went wrong (#6375) - set(MISSING_VARS "") - set(DETAILS "") - # check if all passed variables are valid - set(FPHSA_FOUND_${_NAME} TRUE) - foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS}) - if(NOT ${_CURRENT_VAR}) - set(FPHSA_FOUND_${_NAME} FALSE) - string(APPEND MISSING_VARS " ${_CURRENT_VAR}") - else() - string(APPEND DETAILS "[${${_CURRENT_VAR}}]") - endif() - endforeach() - if(FPHSA_FOUND_${_NAME}) - set(${_NAME}_FOUND TRUE) - set(${_NAME_UPPER}_FOUND TRUE) - else() - set(${_NAME}_FOUND FALSE) - set(${_NAME_UPPER}_FOUND FALSE) - endif() - - # component handling - unset(FOUND_COMPONENTS_MSG) - unset(MISSING_COMPONENTS_MSG) - - if(FPHSA_HANDLE_COMPONENTS) - foreach(comp ${${_NAME}_FIND_COMPONENTS}) - if(${_NAME}_${comp}_FOUND) - - if(NOT DEFINED FOUND_COMPONENTS_MSG) - set(FOUND_COMPONENTS_MSG "found components: ") - endif() - string(APPEND FOUND_COMPONENTS_MSG " ${comp}") - - else() - - if(NOT DEFINED MISSING_COMPONENTS_MSG) - set(MISSING_COMPONENTS_MSG "missing components: ") - endif() - string(APPEND MISSING_COMPONENTS_MSG " ${comp}") - - if(${_NAME}_FIND_REQUIRED_${comp}) - set(${_NAME}_FOUND FALSE) - string(APPEND MISSING_VARS " ${comp}") - endif() - - endif() - endforeach() - set(COMPONENT_MSG "${FOUND_COMPONENTS_MSG} ${MISSING_COMPONENTS_MSG}") - string(APPEND DETAILS "[c${COMPONENT_MSG}]") - endif() - - # version handling: - set(VERSION_MSG "") - set(VERSION_OK TRUE) - - # check with DEFINED here as the requested or found version may be "0" - if (DEFINED ${_NAME}_FIND_VERSION) - if(DEFINED ${FPHSA_VERSION_VAR}) - set(_FOUND_VERSION ${${FPHSA_VERSION_VAR}}) - - if(${_NAME}_FIND_VERSION_EXACT) # exact version required - # count the dots in the version string - string(REGEX REPLACE "[^.]" "" _VERSION_DOTS "${_FOUND_VERSION}") - # add one dot because there is one dot more than there are components - string(LENGTH "${_VERSION_DOTS}." _VERSION_DOTS) - if (_VERSION_DOTS GREATER ${_NAME}_FIND_VERSION_COUNT) - # Because of the C++ implementation of find_package() ${_NAME}_FIND_VERSION_COUNT - # is at most 4 here. Therefore a simple lookup table is used. - if (${_NAME}_FIND_VERSION_COUNT EQUAL 1) - set(_VERSION_REGEX "[^.]*") - elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 2) - set(_VERSION_REGEX "[^.]*\\.[^.]*") - elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 3) - set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*") - else () - set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*\\.[^.]*") - endif () - string(REGEX REPLACE "^(${_VERSION_REGEX})\\..*" "\\1" _VERSION_HEAD "${_FOUND_VERSION}") - unset(_VERSION_REGEX) - if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _VERSION_HEAD) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")") - endif () - unset(_VERSION_HEAD) - else () - if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _FOUND_VERSION) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")") - endif () - endif () - unset(_VERSION_DOTS) - - else() # minimum version specified: - if (${_NAME}_FIND_VERSION VERSION_GREATER _FOUND_VERSION) - set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"") - set(VERSION_OK FALSE) - else () - set(VERSION_MSG "(found suitable version \"${_FOUND_VERSION}\", minimum required is \"${${_NAME}_FIND_VERSION}\")") - endif () - endif() - - else() - - # if the package was not found, but a version was given, add that to the output: - if(${_NAME}_FIND_VERSION_EXACT) - set(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")") - else() - set(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")") - endif() - - endif() - else () - # Check with DEFINED as the found version may be 0. - if(DEFINED ${FPHSA_VERSION_VAR}) - set(VERSION_MSG "(found version \"${${FPHSA_VERSION_VAR}}\")") - endif() - endif () - - if(VERSION_OK) - string(APPEND DETAILS "[v${${FPHSA_VERSION_VAR}}(${${_NAME}_FIND_VERSION})]") - else() - set(${_NAME}_FOUND FALSE) - endif() - - - # print the result: - if (${_NAME}_FOUND) - FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG} ${COMPONENT_MSG}" "${DETAILS}") - else () - - if(FPHSA_CONFIG_MODE) - _FPHSA_HANDLE_FAILURE_CONFIG_MODE() - else() - if(NOT VERSION_OK) - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})") - else() - _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing:${MISSING_VARS}) ${VERSION_MSG}") - endif() - endif() - - endif () - - set(${_NAME}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE) - set(${_NAME_UPPER}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE) -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindPackageMessage.cmake b/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindPackageMessage.cmake deleted file mode 100644 index 0628b981691..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/FindPackageMessage.cmake +++ /dev/null @@ -1,48 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -FindPackageMessage ------------------- - -.. code-block:: cmake - - find_package_message( "message for user" "find result details") - -This function is intended to be used in FindXXX.cmake modules files. -It will print a message once for each unique find result. This is -useful for telling the user where a package was found. The first -argument specifies the name (XXX) of the package. The second argument -specifies the message to display. The third argument lists details -about the find result so that if they change the message will be -displayed again. The macro also obeys the QUIET argument to the -find_package command. - -Example: - -.. code-block:: cmake - - if(X11_FOUND) - find_package_message(X11 "Found X11: ${X11_X11_LIB}" - "[${X11_X11_LIB}][${X11_INCLUDE_DIR}]") - else() - ... - endif() -#]=======================================================================] - -function(find_package_message pkg msg details) - # Avoid printing a message repeatedly for the same find result. - if(NOT ${pkg}_FIND_QUIETLY) - string(REPLACE "\n" "" details "${details}") - set(DETAILS_VAR FIND_PACKAGE_MESSAGE_DETAILS_${pkg}) - if(NOT "${details}" STREQUAL "${${DETAILS_VAR}}") - # The message has not yet been printed. - message(STATUS "${msg}") - - # Save the find details in the cache to avoid printing the same - # message again. - set("${DETAILS_VAR}" "${details}" - CACHE INTERNAL "Details about finding ${pkg}") - endif() - endif() -endfunction() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/SelectLibraryConfigurations.cmake b/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/SelectLibraryConfigurations.cmake deleted file mode 100644 index 4c0e9a8c0a2..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.15/Modules/SelectLibraryConfigurations.cmake +++ /dev/null @@ -1,80 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -SelectLibraryConfigurations ---------------------------- - -.. code-block:: cmake - - select_library_configurations(basename) - -This macro takes a library base name as an argument, and will choose -good values for the variables - -:: - - basename_LIBRARY - basename_LIBRARIES - basename_LIBRARY_DEBUG - basename_LIBRARY_RELEASE - -depending on what has been found and set. - -If only ``basename_LIBRARY_RELEASE`` is defined, ``basename_LIBRARY`` will -be set to the release value, and ``basename_LIBRARY_DEBUG`` will be set -to ``basename_LIBRARY_DEBUG-NOTFOUND``. If only ``basename_LIBRARY_DEBUG`` -is defined, then ``basename_LIBRARY`` will take the debug value, and -``basename_LIBRARY_RELEASE`` will be set to ``basename_LIBRARY_RELEASE-NOTFOUND``. - -If the generator supports configuration types, then ``basename_LIBRARY`` -and ``basename_LIBRARIES`` will be set with debug and optimized flags -specifying the library to be used for the given configuration. If no -build type has been set or the generator in use does not support -configuration types, then ``basename_LIBRARY`` and ``basename_LIBRARIES`` -will take only the release value, or the debug value if the release one -is not set. -#]=======================================================================] - -# This macro was adapted from the FindQt4 CMake module and is maintained by Will -# Dicharry . - -macro(select_library_configurations basename) - if(NOT ${basename}_LIBRARY_RELEASE) - set(${basename}_LIBRARY_RELEASE "${basename}_LIBRARY_RELEASE-NOTFOUND" CACHE FILEPATH "Path to a library.") - endif() - if(NOT ${basename}_LIBRARY_DEBUG) - set(${basename}_LIBRARY_DEBUG "${basename}_LIBRARY_DEBUG-NOTFOUND" CACHE FILEPATH "Path to a library.") - endif() - - get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) - if( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE AND - NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE AND - ( _isMultiConfig OR CMAKE_BUILD_TYPE ) ) - # if the generator is multi-config or if CMAKE_BUILD_TYPE is set for - # single-config generators, set optimized and debug libraries - set( ${basename}_LIBRARY "" ) - foreach( _libname IN LISTS ${basename}_LIBRARY_RELEASE ) - list( APPEND ${basename}_LIBRARY optimized "${_libname}" ) - endforeach() - foreach( _libname IN LISTS ${basename}_LIBRARY_DEBUG ) - list( APPEND ${basename}_LIBRARY debug "${_libname}" ) - endforeach() - elseif( ${basename}_LIBRARY_RELEASE ) - set( ${basename}_LIBRARY ${${basename}_LIBRARY_RELEASE} ) - elseif( ${basename}_LIBRARY_DEBUG ) - set( ${basename}_LIBRARY ${${basename}_LIBRARY_DEBUG} ) - else() - set( ${basename}_LIBRARY "${basename}_LIBRARY-NOTFOUND") - endif() - - set( ${basename}_LIBRARIES "${${basename}_LIBRARY}" ) - - if( ${basename}_LIBRARY ) - set( ${basename}_FOUND TRUE ) - endif() - - mark_as_advanced( ${basename}_LIBRARY_RELEASE - ${basename}_LIBRARY_DEBUG - ) -endmacro() diff --git a/extern/ycm/ycm-0.11.0/cmake-3.15/README b/extern/ycm/ycm-0.11.0/cmake-3.15/README deleted file mode 100644 index 3925dd91a0c..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-3.15/README +++ /dev/null @@ -1,11 +0,0 @@ -Files in this folder and its subfolder come from CMake git repository -(ref v3.15.4): - - git://cmake.org/cmake.git - -They were imported exactly as they are on the original repository, in -order to supply the new features and bugfix available in newer releases -to user with older cmake releases. - -These files are distributed under the OSI-approved BSD License; -see accompanying file Copyright.txt for details. diff --git a/extern/ycm/ycm-0.11.0/cmake-proposed/Copyright.txt b/extern/ycm/ycm-0.11.0/cmake-proposed/Copyright.txt deleted file mode 100644 index 3c92a815b71..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-proposed/Copyright.txt +++ /dev/null @@ -1,125 +0,0 @@ -CMake - Cross Platform Makefile Generator -Copyright 2000-2017 Kitware, Inc. and Contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -* Neither the name of Kitware, Inc. nor the names of Contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ------------------------------------------------------------------------------- - -The following individuals and institutions are among the Contributors: - -* Aaron C. Meadows -* Adriaan de Groot -* Aleksey Avdeev -* Alexander Neundorf -* Alexander Smorkalov -* Alexey Sokolov -* Alex Turbov -* Andreas Pakulat -* Andreas Schneider -* André Rigland Brodtkorb -* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf -* Benjamin Eikel -* Bjoern Ricks -* Brad Hards -* Christopher Harvey -* Christoph Grüninger -* Clement Creusot -* Daniel Blezek -* Daniel Pfeifer -* Enrico Scholz -* Eran Ifrah -* Esben Mose Hansen, Ange Optimization ApS -* Geoffrey Viola -* Google Inc -* Gregor Jasny -* Helio Chissini de Castro -* Ilya Lavrenov -* Insight Software Consortium -* Jan Woetzel -* Kelly Thompson -* Konstantin Podsvirov -* Mario Bensi -* Mathieu Malaterre -* Matthaeus G. Chajdas -* Matthias Kretz -* Matthias Maennich -* Michael Stürmer -* Miguel A. Figueroa-Villanueva -* Mike Jackson -* Mike McQuaid -* Nicolas Bock -* Nicolas Despres -* Nikita Krupen'ko -* NVIDIA Corporation -* OpenGamma Ltd. -* Per Øyvind Karlsen -* Peter Collingbourne -* Petr Gotthard -* Philip Lowman -* Philippe Proulx -* Raffi Enficiaud, Max Planck Society -* Raumfeld -* Roger Leigh -* Rolf Eike Beer -* Roman Donchenko -* Roman Kharitonov -* Ruslan Baratov -* Sebastian Holtermann -* Stephen Kelly -* Sylvain Joubert -* Thomas Sondergaard -* Tobias Hunger -* Todd Gamblin -* Tristan Carel -* University of Dundee -* Vadim Zhukov -* Will Dicharry - -See version control history for details of individual contributions. - -The above copyright and license notice applies to distributions of -CMake in source and binary form. Third-party software packages supplied -with CMake under compatible licenses provide their own copyright notices -documented in corresponding subdirectories or source files. - ------------------------------------------------------------------------------- - -CMake was initially developed by Kitware with the following sponsorship: - - * National Library of Medicine at the National Institutes of Health - as part of the Insight Segmentation and Registration Toolkit (ITK). - - * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel - Visualization Initiative. - - * National Alliance for Medical Image Computing (NAMIC) is funded by the - National Institutes of Health through the NIH Roadmap for Medical Research, - Grant U54 EB005149. - - * Kitware, Inc. diff --git a/extern/ycm/ycm-0.11.0/cmake-proposed/Modules/CMakeParseArguments.cmake b/extern/ycm/ycm-0.11.0/cmake-proposed/Modules/CMakeParseArguments.cmake deleted file mode 100644 index de3f164a5ad..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-proposed/Modules/CMakeParseArguments.cmake +++ /dev/null @@ -1,277 +0,0 @@ -#.rst: -# CMakeParseArguments -# ------------------- -# -# Parse arguments given to a macro or a function. -# -# cmake_parse_arguments() is intended to be used in macros or functions -# for parsing the arguments given to that macro or function. It -# processes the arguments and defines a set of variables which hold the -# values of the respective options. -# -# :: -# -# cmake_parse_arguments( -# -# -# -# [CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY|CMAKE_PARSE_ARGUMENTS_KEEP_EMPTY] -# args... -# ) -# -# The argument contains all options for the respective macro, -# i.e. keywords which can be used when calling the macro without any -# value following, like e.g. the OPTIONAL keyword of the install() -# command. -# -# The argument contains all keywords for this macro -# which are followed by one value, like e.g. DESTINATION keyword of the -# install() command. -# -# The argument contains all keywords for this -# macro which can be followed by more than one value, like e.g. the -# TARGETS or FILES keywords of the install() command. -# -# When done, cmake_parse_arguments() will have defined for each of the -# keywords listed in , and -# a variable composed of the given -# followed by "_" and the name of the respective keyword. These -# variables will then hold the respective value from the argument list. -# For the keywords this will be TRUE or FALSE. -# -# All remaining arguments are collected in a variable -# _UNPARSED_ARGUMENTS, this can be checked afterwards to see -# whether your macro was called with unrecognized parameters. -# -# The cmake CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY (old behaviour) and -# CMAKE_PARSE_ARGUMENTS_KEEP_EMPTY options decide how empty arguments -# should be handled. If none of these options is set, for backwards -# compatibility, if CMAKE_MINIMUM_REQUIRED_VERSION < 3.0.0, the default -# behaviour is to skip empty arguments, otherwise the default behaviour -# is to keep them. Using the CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY -# variable the user can explicitly set the default behaviour in current -# scope. -# -# -# -# As an example here a my_install() macro, which takes similar arguments -# as the real install() command: -# -# :: -# -# function(MY_INSTALL) -# set(options OPTIONAL FAST) -# set(oneValueArgs DESTINATION RENAME) -# set(multiValueArgs TARGETS CONFIGURATIONS) -# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}" ) -# ... -# -# -# -# Assume my_install() has been called like this: -# -# :: -# -# my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub) -# -# -# -# After the cmake_parse_arguments() call the macro will have set the -# following variables: -# -# :: -# -# MY_INSTALL_OPTIONAL = TRUE -# MY_INSTALL_FAST = FALSE (this option was not used when calling my_install() -# MY_INSTALL_DESTINATION = "bin" -# MY_INSTALL_RENAME = "" (was not used) -# MY_INSTALL_TARGETS = "foo;bar" -# MY_INSTALL_CONFIGURATIONS = "" (was not used) -# MY_INSTALL_UNPARSED_ARGUMENTS = "blub" (no value expected after "OPTIONAL" -# -# -# -# You can then continue and process these variables. -# -# Keywords terminate lists of values, e.g. if directly after a -# one_value_keyword another recognized keyword follows, this is -# interpreted as the beginning of the new option. E.g. -# my_install(TARGETS foo DESTINATION OPTIONAL) would result in -# MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION -# would be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefore. -# -# -# -# If the "CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY" option is set, -# cmake_parse_argumentswill not consider empty arguments. -# Therefore -# -# :: -# -# my_install(DESTINATION "" TARGETS foo "" bar) -# -# Will set -# -# :: -# -# MY_INSTALL_DESTINATION = (unset) -# MY_INSTALL_MULTI = "foo;bar" -# -# Using the "CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY" option instead, will set -# -# :: -# -# MY_INSTALL_SINGLE = "" -# MY_INSTALL_MULTI = "foo;;bar" -# -# -# It is also important to note that: -# -# :: -# -# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}" ) -# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) -# -# Will behave differently, because in the latter case empty arguments -# are not passed to cmake_parse_arguments. - -#============================================================================= -# Copyright 2010 Alexander Neundorf -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) - - -if(COMMAND cmake_parse_arguments) - return() -endif() - - -function(_CMAKE_PARSE_ARGUMENTS_INTERNAL prefix _optionNames _singleArgNames _multiArgNames _skipEmpty) - set(insideValues FALSE) - set(currentArgName) - - if(_skipEmpty) - set(_loopARGN ${ARGN}) - else() - set(_loopARGN IN LISTS ARGN) - endif() - - # now iterate over all arguments and fill the result variables - foreach(currentArg ${_loopARGN}) - list(FIND _optionNames "${currentArg}" optionIndex) # ... then this marks the end of the arguments belonging to this keyword - list(FIND _singleArgNames "${currentArg}" singleArgIndex) # ... then this marks the end of the arguments belonging to this keyword - list(FIND _multiArgNames "${currentArg}" multiArgIndex) # ... then this marks the end of the arguments belonging to this keyword - - if(${optionIndex} EQUAL -1 AND ${singleArgIndex} EQUAL -1 AND ${multiArgIndex} EQUAL -1) - if(insideValues) - if("${insideValues}" STREQUAL "SINGLE") - if(_skipEmpty) - set(${prefix}_${currentArgName} ${currentArg}) - else() - set(${prefix}_${currentArgName} "${currentArg}") - endif() - set(insideValues FALSE) - elseif("${insideValues}" STREQUAL "MULTI") - if(_skipEmpty) - list(APPEND ${prefix}_${currentArgName} ${currentArg}) - else() - list(APPEND ${prefix}_${currentArgName} "${currentArg}") - endif() - endif() - else() - if(_skipEmpty) - list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg}) - else() - list(APPEND ${prefix}_UNPARSED_ARGUMENTS "${currentArg}") - endif() - endif() - else() - if(NOT ${optionIndex} EQUAL -1) - set(${prefix}_${currentArg} TRUE) - set(insideValues FALSE) - elseif(NOT ${singleArgIndex} EQUAL -1) - set(currentArgName ${currentArg}) - set(${prefix}_${currentArgName}) - set(insideValues "SINGLE") - elseif(NOT ${multiArgIndex} EQUAL -1) - set(currentArgName ${currentArg}) - set(${prefix}_${currentArgName}) - set(insideValues "MULTI") - endif() - endif() - - endforeach() - - # propagate the result variables to the caller: - foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames} UNPARSED_ARGUMENTS) - if(DEFINED ${prefix}_${arg_name}) - set(${prefix}_${arg_name} "${${prefix}_${arg_name}}" PARENT_SCOPE) - endif() - endforeach() - -endfunction() - - -# This "wrapper" macro is a workaround that allows to use this version of this -# module with CMake <= 2.8.12 -# Before that version set(VAR "" PARENT_SCOPE) did not set the variable in -# the parent scope and instead it used to unset it. -# This wrapper calls the real function, but if necessary (i.e. when empty -# arguments should not be skipped and CMake < 3.0.0) it parses the arguments -# again in order to find single and multiple arguments that have not been set -# and sets them to an empty string in the same variable scope as the caller. -macro(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames) - # first set all result variables to empty/FALSE - foreach(arg_name ${_singleArgNames} ${_multiArgNames}) - set(${prefix}_${arg_name}) - endforeach() - - foreach(option ${_optionNames}) - set(${prefix}_${option} FALSE) - endforeach() - - set(${prefix}_UNPARSED_ARGUMENTS) - - if("x${ARGN}" MATCHES "^xCMAKE_PARSE_ARGUMENTS_(SKIP|KEEP)_EMPTY;?") - if("${CMAKE_MATCH_1}" STREQUAL "SKIP") - set(_skipEmpty 1) - elseif("${CMAKE_MATCH_1}" STREQUAL "KEEP") - set(_skipEmpty 0) - endif() - string(REGEX REPLACE "^${CMAKE_MATCH_0}" "" ARGN "x${ARGN}") - elseif(DEFINED CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY) - set(_skipEmpty "${CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY}") - elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.0.0) - # Keep compatibility with previous releases - set(_skipEmpty 1) - else() - set(_skipEmpty 0) - endif() - - _cmake_parse_arguments_internal("${prefix}" "${_optionNames}" "${_singleArgNames}" "${_multiArgNames}" "${_skipEmpty}" "${ARGN}") - - if(NOT _skipEmpty AND CMAKE_VERSION VERSION_LESS 3.0.0) - set(__singleArgNames ${_singleArgNames}) - set(__multiArgNames ${_multiArgNames}) - foreach(currentArg ${ARGN}) - if(NOT DEFINED ${prefix}_${currentArg}) - list(FIND __singleArgNames "${currentArg}" _singleArgIndex) - list(FIND __multiArgNames "${currentArg}" _multiArgIndex) - if(NOT ${_singleArgIndex} EQUAL -1 OR NOT ${_multiArgIndex} EQUAL -1) - set(${prefix}_${currentArg} "") - endif() - endif() - endforeach() - unset(__singleArgNames) - unset(__multiArgNames) - endif() - -endmacro() diff --git a/extern/ycm/ycm-0.11.0/cmake-proposed/Modules/ExternalProject.cmake b/extern/ycm/ycm-0.11.0/cmake-proposed/Modules/ExternalProject.cmake deleted file mode 100644 index 2d25a3104e5..00000000000 --- a/extern/ycm/ycm-0.11.0/cmake-proposed/Modules/ExternalProject.cmake +++ /dev/null @@ -1,3277 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -ExternalProject ---------------- - -.. only:: html - - .. contents:: - -External Project Definition -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. command:: ExternalProject_Add - - The ``ExternalProject_Add()`` function creates a custom target to drive - download, update/patch, configure, build, install and test steps of an - external project: - - .. code-block:: cmake - - ExternalProject_Add( [