Serghei,
The check_include_file macro in tdegraphics/ksvg/ConfigureChecks.cmake seems to fail on 64-bit systems. Please read bug report 1311:
http://bugs.pearsoncomputing.net/show_bug.cgi?id=1311#c9
Any ideas?
Thanks.
Darrell
On Sunday 11 November 2012 10:39:02 Darrell Anderson wrote:
Serghei,
The check_include_file macro in tdegraphics/ksvg/ConfigureChecks.cmake seems to fail on 64-bit systems. Please read bug report 1311:
http://bugs.pearsoncomputing.net/show_bug.cgi?id=1311#c9
Any ideas?
Show me CMakeError.log and the output of pkg-config --cflags fribidi
2012/11/11 Serghei Amelian serghei@thel.ro
On Sunday 11 November 2012 10:39:02 Darrell Anderson wrote:
Serghei,
The check_include_file macro in tdegraphics/ksvg/ConfigureChecks.cmake seems to fail on 64-bit systems. Please read bug report 1311:
http://bugs.pearsoncomputing.net/show_bug.cgi?id=1311#c9
Any ideas?
Show me CMakeError.log and the output of pkg-config --cflags fribidi
My CMakeError.log and other logs already attached to the bug report. pkg-config also returns glib's stuff... Patch already provided.
On Sunday 11 November 2012 19:00:47 Fat-Zer wrote:
2012/11/11 Serghei Amelian serghei@thel.ro
On Sunday 11 November 2012 10:39:02 Darrell Anderson wrote:
Serghei,
The check_include_file macro in tdegraphics/ksvg/ConfigureChecks.cmake seems to fail on 64-bit systems. Please read bug report 1311:
http://bugs.pearsoncomputing.net/show_bug.cgi?id=1311#c9
Any ideas?
Show me CMakeError.log and the output of pkg-config --cflags fribidi
My CMakeError.log and other logs already attached to the bug report. pkg-config also returns glib's stuff... Patch already provided.
Do not override/pollute CMAKE_REQUIRED_INCLUDES, you can fall into another strange and hard to hunt bugs.
Correct way:
tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME ) tde_restore( CMAKE_REQUIRED_INCLUDES )
2012/11/11 Serghei Amelian serghei@thel.ro
Do not override/pollute CMAKE_REQUIRED_INCLUDES, you can fall into another strange and hard to hunt bugs.
Correct way:
tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME ) tde_restore( CMAKE_REQUIRED_INCLUDES )
It's a good practice, but here it is no difference... CMAKE_REQUIRED_INCLUDES remains set only until end of file and there is no other compilations...
On Sunday 11 November 2012 19:31:24 Fat-Zer wrote:
2012/11/11 Serghei Amelian serghei@thel.ro
Do not override/pollute CMAKE_REQUIRED_INCLUDES, you can fall into another strange and hard to hunt bugs.
Correct way:
tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME ) tde_restore( CMAKE_REQUIRED_INCLUDES )
It's a good practice, but here it is no difference... CMAKE_REQUIRED_INCLUDES remains set only until end of file and there is no other compilations...
Well, is bad idea to think that "in this particular case will working". The particular cases can be changed, new checks can be added, etc.
Do not override/pollute CMAKE_REQUIRED_INCLUDES, you can fall into another strange and hard to hunt bugs.
Correct way:
tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME ) tde_restore( CMAKE_REQUIRED_INCLUDES )
It's a good practice, but here it is no difference... CMAKE_REQUIRED_INCLUDES remains set only until end of file and there is no other compilations...
Well, is bad idea to think that "in this particular case will working". The particular cases can be changed, new checks can be added, etc.
Serghei,
The patch provided in bug report 1311 resolves the problem on my system. I won't pretend to know how the patch resolves the problem but based upon your concerns expressed in this thread, would you please review the patch? If you approve then I'll push to GIT.
Regarding your previous request for the cmake error log, here is the relevant section:
Determining if the include file fribidi/fribidi-types.h exists failed with the following output: Change Dir: /dev/shm/tdegraphics.build/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/gmake "cmTryCompileExec891115794/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec891115794.dir/build.make CMakeFiles/cmTryCompileExec891115794.dir/build gmake[1]: Entering directory `/dev/shm/tdegraphics.build/CMakeFiles/CMakeTmp' /usr/bin/cmake -E cmake_progress_report /dev/shm/tdegraphics.build/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec891115794.dir/CheckIncludeFile.c.o /usr/bin/gcc -O2 -fPIC -o CMakeFiles/cmTryCompileExec891115794.dir/CheckIncludeFile.c.o -c /dev/shm/tdegraphics.build/CMakeFiles/CMakeTmp/CheckIncludeFile.c In file included from /usr/include/fribidi/fribidi-types.h:36:0, from /dev/shm/tdegraphics.build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1: /usr/include/fribidi/fribidi-common.h:65:20: fatal error: glib.h: No such file or directory compilation terminated. gmake[1]: *** [CMakeFiles/cmTryCompileExec891115794.dir/CheckIncludeFile.c.o] Error 1 gmake[1]: Leaving directory `/dev/shm/tdegraphics.build/CMakeFiles/CMakeTmp' gmake: *** [cmTryCompileExec891115794/fast] Error 2
The problem seems to be that the check_include_file macro performs some kind of internal test of the fribidi-types.h file and then fails when not finding glib.h. Thus the output message:
-- checking for one of the modules 'fribidi' -- Looking for fribidi/fribidi-types.h -- Looking for fribidi/fribidi-types.h - not found
is technically incorrect. The file _is_ found but something else in the configuration process fails. I don't know why cmake is inspecting the contents of fribidi-types.h. Seems to me either the file exists or does not and that is all that should be checked.
Darrell
On Sunday 11 November 2012 22:48:54 Darrell Anderson wrote:
Do not override/pollute CMAKE_REQUIRED_INCLUDES, you can fall into another strange and hard to hunt bugs.
Correct way:
tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME ) tde_restore( CMAKE_REQUIRED_INCLUDES )
It's a good practice, but here it is no difference... CMAKE_REQUIRED_INCLUDES remains set only until end of file and there is no other compilations...
Well, is bad idea to think that "in this particular case will working". The particular cases can be changed, new checks can be added, etc.
Serghei,
The patch provided in bug report 1311 resolves the problem on my system. I won't pretend to know how the patch resolves the problem but based upon your concerns expressed in this thread, would you please review the patch? If you approve then I'll push to GIT.
As I said, correct version is:
tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME ) tde_restore( CMAKE_REQUIRED_INCLUDES )
Regarding your previous request for the cmake error log, here is the relevant section:
It's ok, is as I was expected.
Determining if the include file fribidi/fribidi-types.h exists failed with the following output: Change Dir: /dev/shm/tdegraphics.build/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/gmake "cmTryCompileExec891115794/fast"
[...]
As I said, correct version is:
tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME ) tde_restore( CMAKE_REQUIRED_INCLUDES )
Okay, thank you.
If I understand correctly, the correct patch should look like this:
diff -urN tdegraphics/ksvg/ConfigureChecks.cmake tdegraphics.new/ksvg/ConfigureChecks.cmake --- tdegraphics/ksvg/ConfigureChecks.cmake 2012-09-14 17:59:55.000000000 -0500 +++ tdegraphics.new/ksvg/ConfigureChecks.cmake 2012-11-11 15:17:24.000000000 -0600 @@ -41,7 +41,9 @@ # fribidi pkg_search_module( FRIBIDI fribidi ) if( FRIBIDI_FOUND ) + tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME ) + tde_restore( CMAKE_REQUIRED_INCLUDES ) else( ) tde_message_fatal( "fribidi is required, but was not found on your system" ) endif( )
I will test again.
Darrell
As I said, correct version is:
tde_save_and_set( CMAKE_REQUIRED_INCLUDES
${FRIBIDI_INCLUDE_DIRS} )
check_include_file( fribidi/fribidi-types.h
FRIBIDI_NEW_FILENAME )
tde_restore( CMAKE_REQUIRED_INCLUDES )
Okay, thank you.
If I understand correctly, the correct patch should look like this:
diff -urN tdegraphics/ksvg/ConfigureChecks.cmake tdegraphics.new/ksvg/ConfigureChecks.cmake --- tdegraphics/ksvg/ConfigureChecks.cmake 2012-09-14 17:59:55.000000000 -0500 +++ tdegraphics.new/ksvg/ConfigureChecks.cmake 2012-11-11 15:17:24.000000000 -0600 @@ -41,7 +41,9 @@ # fribidi pkg_search_module( FRIBIDI fribidi ) if( FRIBIDI_FOUND )
- tde_save_and_set( CMAKE_REQUIRED_INCLUDES ${FRIBIDI_INCLUDE_DIRS} ) check_include_file( fribidi/fribidi-types.h FRIBIDI_NEW_FILENAME )
- tde_restore( CMAKE_REQUIRED_INCLUDES )
else( ) tde_message_fatal( "fribidi is required, but was not found on your system" ) endif( )
I will test again.
The updated patch worked.
Darrell