From 7e3df5103193634cc42944b780c7771402683ca6 Mon Sep 17 00:00:00 2001 From: nick black Date: Fri, 10 Dec 2021 04:45:00 -0500 Subject: [PATCH] [FAQ] mention USE_CXX=off --- CMakeLists.txt | 30 +++++++++++++++--------------- INSTALL.md | 32 ++++++++++++++++---------------- README.md | 1 + 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7dae58dfe..4b2c1c712 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,10 +14,10 @@ include(FeatureSummary) option(DFSG_BUILD "DFSG build (no non-free media/code)" OFF) option(USE_ASAN "Build with AddressSanitizer" OFF) option(USE_COVERAGE "Assess code coverage with llvm-cov/lcov" OFF) -option(USE_CPP "Build C++ code" ON) +option(USE_CXX "Build C++ code" ON) cmake_dependent_option( USE_DOCTEST "Build notcurses-tester with doctest" ON - "BUILD_TESTING;USE_CPP" OFF + "BUILD_TESTING;USE_CXX" OFF ) option(USE_DEFLATE "Use libdeflate instead of libz" ON) option(USE_DOXYGEN "Build HTML cross reference with doxygen" OFF) @@ -39,18 +39,18 @@ set(USE_OIIO OFF) if(${USE_MULTIMEDIA} STREQUAL "ffmpeg") set(USE_FFMPEG ON) elseif(${USE_MULTIMEDIA} STREQUAL "oiio") - if(NOT ${USE_CPP}) - message(FATAL_ERROR "USE_CPP must be on to use OpenImageIO.") + if(NOT ${USE_CXX}) + message(FATAL_ERROR "USE_CXX must be on to use OpenImageIO.") endif() set(USE_OIIO ON) elseif(NOT ${USE_MULTIMEDIA} STREQUAL "none") message(FATAL_ERROR "USE_MULTIMEDIA must be one of 'oiio', 'ffmpeg', 'none' (was '${USE_MULTIMEDIA}').") endif() -if(${USE_CPP}) +if(${USE_CXX}) enable_language(CXX) endif() -if(${USE_CPP}) +if(${USE_CXX}) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_VISIBILITY_PRESET hidden) @@ -69,7 +69,7 @@ if(${USE_COVERAGE}) endif() # FIXME requires clang11+ string(APPEND CMAKE_C_FLAGS_DEBUG " --coverage -fprofile-instr-generate -fcoverage-mapping") - if(${USE_CPP}) + if(${USE_CXX}) if(NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") message(FATAL_ERROR "USE_COVERAGE was on but CXX isn't clang++") endif() @@ -405,7 +405,7 @@ target_link_directories(notcurses-static PRIVATE ${OIIO_STATIC_LIBRARY_DIRS}) endif() ############################################################################ -if(${USE_CPP}) +if(${USE_CXX}) # libnotcurses++ (C++ wrappers) set(NCPP_SOURCES src/libcpp/FDPlane.cc @@ -535,7 +535,7 @@ foreach(f ${POCSRCS}) PRIVATE "${TERMINFO_LIBRARY_DIRS}" ) endforeach() -if(${USE_CPP}) +if(${USE_CXX}) file(GLOB POCPPSRCS CONFIGURE_DEPENDS src/pocpp/*.cpp) foreach(f ${POCPPSRCS}) get_filename_component(fe "${f}" NAME_WE) @@ -603,7 +603,7 @@ target_link_libraries(notcurses-info ############################################################################ # notcurses-input -if(${USE_CPP}) +if(${USE_CXX}) file(GLOB INPUTSRCS CONFIGURE_DEPENDS src/input/input.cpp) add_executable(notcurses-input ${INPUTSRCS}) target_include_directories(notcurses-input @@ -687,7 +687,7 @@ file(GLOB MANSOURCE1 CONFIGURE_DEPENDS doc/man/man1/*.md) file(GLOB MANSOURCE3 CONFIGURE_DEPENDS doc/man/man3/*.md) # all further binaries require multimedia and C++ support -if(${USE_CPP}) +if(${USE_CXX}) if(${USE_MULTIMEDIA} STREQUAL "none") list(FILTER MANSOURCE1 EXCLUDE REGEX "ncls.1.md") list(FILTER MANSOURCE1 EXCLUDE REGEX "ncplayer.1.md") @@ -731,7 +731,7 @@ endif() ############################################################################ # testing if(${BUILD_TESTING}) -if(${USE_CPP}) +if(${USE_CXX}) #set(CMAKE_CTEST_ARGUMENTS "-V") if(${USE_DOCTEST}) file(GLOB TESTSRCS CONFIGURE_DEPENDS src/tests/*.cpp src/compat/*.c) @@ -772,7 +772,7 @@ add_test( NAME notcurses-info COMMAND notcurses-info ) -if(${USE_CPP}) +if(${USE_CXX}) add_test( NAME ncpp_build COMMAND ncpp_build @@ -990,7 +990,7 @@ install(TARGETS ncneofetch DESTINATION bin) if(NOT WIN32) install(TARGETS ncman DESTINATION bin) endif() -if(${USE_CPP}) +if(${USE_CXX}) install(TARGETS notcurses-input DESTINATION bin) install(TARGETS nctetris DESTINATION bin) if(NOT ${USE_MULTIMEDIA} STREQUAL "none") @@ -1003,7 +1003,7 @@ LIST(APPEND INSTLIBS notcurses-core notcurses) if(${USE_STATIC}) LIST(APPEND INSTLIBS notcurses-core-static notcurses-static) endif() -if(${USE_CPP}) +if(${USE_CXX}) LIST(APPEND INSTLIBS notcurses++) if(${USE_STATIC}) LIST(APPEND INSTLIBS notcurses++-static) diff --git a/INSTALL.md b/INSTALL.md index c53dab851..652073479 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -120,19 +120,19 @@ To set the C compiler, export `CC`. To set the C++ compiler, export `CXX`. The `CMAKE_BUILD_TYPE` CMake variable can be defined to any of its standard values, but must be `Debug` for use of `USE_COVERAGE`. -* `DFSG_BUILD`: leave out all content considered non-free under the Debian Free - Software Guidelines -* `BUILD_TESTING`: build test targets -* `USE_ASAN`: build with AddressSanitizer -* `USE_CPP`: build C++ code (requires a C++ compiler) -* `USE_COVERAGE`: build coverage support (for developers, requires use of Clang) -* `USE_DOCTEST`: build `notcurses-tester` with Doctest, requires `BUILD_TESTING` - * `USE_DOCTEST=on` requires `USE_CPP=off` -* `USE_DOXYGEN`: build interlinked HTML documentation with Doxygen -* `USE_GPM`: build GPM console mouse support via libgpm -* `USE_MULTIMEDIA`: `ffmpeg` for FFmpeg, `oiio` for OpenImageIO, `none` for none - * `oiio` cannot be used with `USE_CPP=off` -* `USE_PANDOC`: build man pages with pandoc -* `USE_POC`: build small, uninstalled proof-of-concept binaries -* `USE_QRCODEGEN`: build qrcode support via libqrcodegen -* `USE_STATIC`: build static libraries (in addition to shared ones) +* `DFSG_BUILD=off`: leave out all content considered non-free under the Debian Free + Software Guidelines +* `BUILD_TESTING=on`: build test targets +* `USE_ASAN=off`: build with AddressSanitizer +* `USE_CXX=on`: build C++ code (requires a C++ compiler) +* `USE_COVERAGE=off`: build coverage support (for developers, requires use of Clang) +* `USE_DOCTEST=on`: build `notcurses-tester` with Doctest, requires `BUILD_TESTING` + * `USE_DOCTEST=on` requires `USE_CXX=on` +* `USE_DOXYGEN=off`: build interlinked HTML documentation with Doxygen +* `USE_GPM=off`: build GPM console mouse support via libgpm +* `USE_MULTIMEDIA=ffmpeg`: `ffmpeg` for FFmpeg, `oiio` for OpenImageIO, `none` for none + * `oiio` cannot be used with `USE_CXX=off` +* `USE_PANDOC=on`: build man pages with pandoc +* `USE_POC=on`: build small, uninstalled proof-of-concept binaries +* `USE_QRCODEGEN=off`: build qrcode support via libqrcodegen +* `USE_STATIC=on`: build static libraries (in addition to shared ones) diff --git a/README.md b/README.md index 5a43f5a22..ba610f5ff 100644 --- a/README.md +++ b/README.md @@ -281,6 +281,7 @@ If things break or seem otherwise lackluster, **please** consult the wrappers, nor can you build with the OpenImageIO multimedia backend (OIIO ships C++ headers). You'll be able to build the main library, though, as well as notcurses-demo (and maybe a few other binaries). + Use -DUSE_CXX=off.