thanks a lot Michael.
Finally, this was not such a trivial problem but I should find my way
with the examples you gave me.
Eric
Michael Hertling a écrit :
On 10/21/2011 06:49 PM, pellegrini wrote:
Hi all,
after digging and googling some hours I did a first step in the right
direction.
I had to add the command:
enable_language(rc)
set(cmake_rc_compiler_arg1 -cif8)
The resource compiler I (must) use is the one provided by winteracter
Fortran library.
This led me to a serie of problems related to the use of this compiler:
- it does not accept any output flag so that the output resource
object is always created "in-source" in the rc file directory.
- on Linux, it produces a .o object file instead of a .res file
Looking at the CMakeRCInformation.cmake I see that by construction CMake
will use the following compile command:
"<CMAKE_RC_COMPILER> <FLAGS> <DEFINES> /fo<OBJECT> <SOURCE>"
with a resource object file with a .res extension.
You might rewrite this rule variable, e.g. in order to drop
/fo<OBJECT>, but this wouldn't resolve your issues, AFAICS.
On a Linux machine, this produces a wrong build command line with the
path for the output object file being "/foCMakeFiles/...". This problem
was raised sometime ago in the mantis bug tracker but unfortunatley the
patch proposed apply for mingw using windres but not for Linux.
Is there a fix for this ?
If no, is there a way to inform the linker that:
- my resource object file is located "in-source"
You might create symlinks to the resource files - or copy them - so
that the winteracter RC generates its output files within the build
tree; note that the source tree may be read-only. This could even be
done on the fly with an adapted version of ADD_EXECUTABLE/LIBRARY().
- the extension is not .res but .o
You might use a RULE_LAUNCH_COMPILE property in conjunction with a
shell script which recognizes RC command lines, moves the .o to a
.res in the correct directory and drops the undesired /fo switch.
The attached CMakeLists.txt and rc.sh files outline these approaches;
check them out with meaningful ${CMAKE_SOURCE_DIR}/{abs,srcdir}.rc
and ${CMAKE_BINARY_DIR}/bindir.rc. However, they are untested as I
currently haven't any RC at hand; moreover, they're restricted to
Makefiles and won't work on Windows.
Regards,
Michael
pellegrini a écrit :
Hi all,
I use CMake 2.8.5 on Linux and Windows machine to build a Fortran
project.
On Windows, no problem, the build and the resulting GUI are OK. On
Linux, the build seems to
be OK but the resulting GUI gives an empty screen. Discussing with
Michael a few days ago made
me think that it could be related to the use of an inappropriated
motif library.
However, looking in more details I see with a make VERBOSE=1 that my
rc file is not built
(I do not see the line "Building RC object ..."). even if it is
declared as one of my sources files.
Is there some extra commands to specify to make cmake recognize and
compile a rc file ?
thanks
Eric
------------------------------------------------------------------------
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
--
Eric Pellegrini
Calcul Scientifique
Institut Laue-Langevin
Grenoble, France
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake