Просмотр исходного кода

ENH: add support for the Portland Compiler to CMake, can build cmake and the tests pass (except the wrapping tests, which fail to link to the g++-compiled Qt)

Alex
Alexander Neundorf 18 лет назад
Родитель
Сommit
4ee1ee1bd0

+ 2 - 2
CMakeLists.txt

@@ -406,9 +406,9 @@ CMAKE_BUILD_UTILITIES()
 IF(BUILD_CursesDialog)
   GET_FILENAME_COMPONENT(_CURSES_DIR "${CURSES_LIBRARY}" PATH)
   SET(CURSES_NEED_RPATH FALSE)
-  IF(NOT "${_CURSES_DIR}" STREQUAL "/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib")
+  IF(NOT "${_CURSES_DIR}" STREQUAL "/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/lib64" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib64")
     SET(CURSES_NEED_RPATH TRUE)
-  ENDIF(NOT "${_CURSES_DIR}" STREQUAL "/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib")
+  ENDIF(NOT "${_CURSES_DIR}" STREQUAL "/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib" AND NOT "${_CURSES_DIR}" STREQUAL "/lib64" AND NOT "${_CURSES_DIR}" STREQUAL "/usr/lib64")
 ENDIF(BUILD_CursesDialog)
 
 # The same might be true on other systems for other libraries if 

+ 3 - 0
Modules/CMakeCCompilerId.c

@@ -27,6 +27,9 @@
 #elif defined(__IBMC__)
 # define COMPILER_ID "VisualAge"
 
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+
 #elif defined(__GNUC__)
 # define COMPILER_ID "GNU"
 

+ 3 - 0
Modules/CMakeCXXCompilerId.cpp

@@ -29,6 +29,9 @@
 #elif defined(__IBMCPP__)
 # define COMPILER_ID "VisualAge"
 
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+
 #elif defined(__GNUC__)
 # define COMPILER_ID "GNU"
 

+ 5 - 0
Modules/Platform/Linux-PGI-C.cmake

@@ -0,0 +1,5 @@
+SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
+
+SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+

+ 4 - 0
Modules/Platform/Linux-PGI-CXX.cmake

@@ -0,0 +1,4 @@
+SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
+
+SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")

+ 9 - 0
Source/kwsys/Directory.cxx

@@ -193,6 +193,15 @@ unsigned long Directory::GetNumberOfFilesInDirectory(const char* name)
 #include <sys/types.h>
 #include <dirent.h>
 
+/* There is a problem with the Portland compiler, large file
+support and glibc/Linux system headers: 
+http://www.pgroup.com/userforum/viewtopic.php?
+p=1992&sid=f16167f51964f1a68fe5041b8eb213b6
+*/
+#if defined(__PGI) && defined(__USE_FILE_OFFSET64)
+# define dirent dirent64
+#endif
+
 namespace KWSYS_NAMESPACE
 {