Created attachment 795 [details] CMake configure log. I tried to cross-compile eigen 3.3.4 from Ubuntu 14.04 to QNX 6.5.0 using the qcc compiler (which is based on a gcc 4.4.2). During the CMake configure step, I get an error related to the fact that qcc does not support the argument `--version` (See qcc doc here http://www.qnx.com/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_utilities%2Fq%2Fqcc.html) I managed to pull through using this patch, but it's definitely not a clean one: ``` diff -ru eigen3.orig/cmake/EigenTesting.cmake eigen3/cmake/EigenTesting.cmake --- cmake/EigenTesting.cmake 2017-09-14 17:34:34.622709508 +0200 +++ cmake/EigenTesting.cmake 2017-09-14 17:36:30.378710602 +0200 @@ -550,7 +550,12 @@ execute_process(COMMAND ${CMAKE_CXX_COMPILER} ${EIGEN_CXX_FLAG_VERSION} OUTPUT_VARIABLE eigen_cxx_compiler_version_string OUTPUT_STRIP_TRAILING_WHITESPACE) - string(REGEX REPLACE "[\n\r].*" "" eigen_cxx_compiler_version_string ${eigen_cxx_compiler_version_string}) + if(${CMAKE_SYSTEM_NAME} STREQUAL QNX) + # Hardcode version. + set(eigen_cxx_compiler_version_string 4.4.2) + else() + string(REGEX REPLACE "[\n\r].*" "" eigen_cxx_compiler_version_string ${eigen_cxx_compiler_version_string}) + endif() ei_get_compilerver_from_cxx_version_string("${eigen_cxx_compiler_version_string}" CNAME CVER) set(${VAR} "${CNAME}-${CVER}") ```
According to the docu you linked to setting the following should work: set(EIGEN_CXX_FLAG_VERSION "-Wc,--version") You may also need to adapt the ei_get_compilerver_from_cxx_version_string macro, to make this work. (I can't test this, since I don't have QNX installed).
I tried your approach which sounds good, but qcc only returns an error. I think it's because the `--version` argument is not specific to the compiler. I managed to make something work by generating an error message and catching it. ``` diff -ru eigen3.orig/cmake/EigenTesting.cmake eigen3/cmake/EigenTesting.cmake --- cmake/EigenTesting.cmake 2017-09-18 13:07:07.233825416 +0200 +++ cmake/EigenTesting.cmake 2017-09-18 18:05:39.169994773 +0200 @@ -544,17 +544,21 @@ if(WIN32 AND ${CMAKE_CXX_COMPILER_ID} EQUAL "Intel") set(EIGEN_CXX_FLAG_VERSION "/version") + elseif(${CMAKE_SYSTEM_NAME} STREQUAL QNX) + set(EIGEN_CXX_FLAG_VERSION "-v") else() set(EIGEN_CXX_FLAG_VERSION "--version") endif() execute_process(COMMAND ${CMAKE_CXX_COMPILER} ${EIGEN_CXX_FLAG_VERSION} - OUTPUT_VARIABLE eigen_cxx_compiler_version_string OUTPUT_STRIP_TRAILING_WHITESPACE) + OUTPUT_VARIABLE eigen_cxx_compiler_version_string + ERROR_VARIABLE eigen_cxx_compiler_version_string + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_STRIP_TRAILING_WHITESPACE) string(REGEX REPLACE "[\n\r].*" "" eigen_cxx_compiler_version_string ${eigen_cxx_compiler_version_string}) ei_get_compilerver_from_cxx_version_string("${eigen_cxx_compiler_version_string}" CNAME CVER) set(${VAR} "${CNAME}-${CVER}") - endif() endmacro(ei_get_compilerver) @@ -569,6 +573,7 @@ string(REGEX MATCH "gcc|GCC" ei_has_gcc ${VERSTRING}) string(REGEX MATCH "icpc|ICC" ei_has_icpc ${VERSTRING}) string(REGEX MATCH "clang|CLANG" ei_has_clang ${VERSTRING}) + string(REGEX MATCH "qcc|QCC" ei_has_qcc ${VERSTRING}) # combine them if((ei_has_llvm) AND (ei_has_gpp OR ei_has_gcc)) @@ -579,6 +584,8 @@ set(${CNAME} "clang++") elseif(ei_has_icpc) set(${CNAME} "icpc") + elseif(ei_has_qcc) + set(${CNAME} "qcc") elseif(ei_has_gpp OR ei_has_gcc) set(${CNAME} "g++") else() @@ -720,4 +727,5 @@ ei_test1_get_compilerver_from_cxx_version_string("i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)" "llvm-g++" "4.2.1") ei_test1_get_compilerver_from_cxx_version_string("g++-mp-4.4 (GCC) 4.4.6" "g++" "4.4.6") ei_test1_get_compilerver_from_cxx_version_string("g++-mp-4.4 (GCC) 2011" "g++" "4.4") + ei_test1_get_compilerver_from_cxx_version_string("/opt/qnx650/host/linux/x86/etc/qcc/gcc/4.4.2/gcc_ntox86++.conf" "qcc" "_") endmacro(ei_test_get_compilerver_from_cxx_version_string) ```
-- GitLab Migration Automatic Message -- This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/1467.