Server Levent Yilmaz wrote:
However the executables are invalid. The reason, which took me a while
to figure out, is the use of shared libraries, which as I mentioned, is
not allowed in the Catamount system. The front-end wrappers
unfortunately do not automatically detect a possible misuse and proceed
with linkage to any shared library which happens to be present on the
linker command line. It turns out that the culprit was
find_package(BLAS) in my CMakeLists.txt which detects a shared library
(correct one for the front ends, invalid for Catamount).
How can I implement, locally at least, workarounds for such issues?
(such as say, prohibit finding and building shared library targets all
together for this particular system only)
You have to setup the toolchain and CMAKE_FIND_ROOT_PATH to deal with the
target platform:
http://www.cmake.org/Wiki/CMake_Cross_Compiling
On a further note, in case you may want to expand definitions for this
compiler, here are my suggestiong for a set of PGI flags for various
build types (from user's guide - http://www.pgroup.com/doc/pgiug.pdf)
Fortran_FLAGS = -Mpreprocess -Kieee -fpic
Fortran_FLAGS_DEBUG = -g -O0 -Mbounds
Fortran_FLAGS_MINSIZEREL = -O2 -s
Fortran_FLAGS_RELEASE = -fast -O3 -Mipa=fast
Fortran_FLAGS_RELWITHDEB = -O2 -gopt
Also, one particular weirdness using this compiler, as compared to Intel
or GNU compiler, is that CMake is somehow unable to copy the generated
module files to ${CMAKE_Fortran_MODULE_DIRECTORY}. It might be possible
that the related flag is incompatible. It should be -module <dir> for
the PGI compiler, as opposed to -M<dir> for GNU.
Thanks for the flag info. I've updated support for the compiler to include it.
-Brad
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake