You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Jiri Daněk (Jira)" <ji...@apache.org> on 2021/04/01 20:01:00 UTC

[jira] [Commented] (PROTON-2365) Build failure without C++

    [ https://issues.apache.org/jira/browse/PROTON-2365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17313414#comment-17313414 ] 

Jiri Daněk commented on PROTON-2365:
------------------------------------

It could be that check_language in CMake does a less-than-thorough check, so it is possible to pass it, but then fail when C++ is actually being enabled.

bq. 0003-CMakeLists.txt-fix-build-without-C.patch

{{BUILD_CPP}} should be there already. There is some magic which is dynamically defining these variables based on a list of available binding, and it also takes into account the {{-DBUILD_BINDINGS}} option.

Doing a condition with {{CMAKE_CXX_COMPILER AND BUILD_CPP}} is not ideal, because some Proton C tests are written in C++ (using the Catch library) and the plan is to eventually move all C tests to C++. Compilation without C++ available would have to also disable building (some of) the tests. I don't like the direction this is going.

Is being able to build Proton without C++ all that important? As far as I can tell, the thinking has so far been that C++ is available everywhere, so we should make use of it as much as possible (e.g., use Catch to test Proton C). We already have a similar relationship with Python. The Proton project will not build without Python and many tests for Proton C need Python.

> Build failure without C++
> -------------------------
>
>                 Key: PROTON-2365
>                 URL: https://issues.apache.org/jira/browse/PROTON-2365
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: build
>    Affects Versions: proton-c-0.33.0
>            Reporter: Fabrice Fontaine
>            Priority: Major
>         Attachments: 0003-CMakeLists.txt-fix-build-without-C.patch
>
>
> For an unknown reason, the following build failure is raised when the toolchain does not have a working C++ compiler (with cmake 3.18.4):
> {code:java}
> -- The CXX compiler identification is unknown
> CMake Error at CMakeLists.txt:73 (enable_language):
>  The CMAKE_CXX_COMPILER:
> /home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/arm-linux-g++
> is not a full path to an existing compiler tool.
> Tell CMake where to find the compiler by setting either the environment
>  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
>  to the compiler, or to the compiler name if it is in the PATH.
> -- Configuring incomplete, errors occurred!
> {code}
> I don't understand why this build failure is raised because enable_language(CXX) is correctly protected by
> {code:java}
> check_language (CXX)
> if (CMAKE_CXX_COMPILER){code}
> Perhaps, there is a bug inside cmake, to fix it, check for BUILD_CPP



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org