Unverified Commit e06e12bc authored by Kelvin Rodriguez's avatar Kelvin Rodriguez Committed by GitHub
Browse files

Merge branch 'cmake' into conda

parents b5d04c70 9c838f9d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@ cmake_minimum_required(VERSION 3.4)
# Point cmake to our other CMake files.
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")

# always look for framworks last
set(CMAKE_FIND_FRAMEWORK LAST)

include(AddIsisModule)
@@ -106,6 +105,7 @@ endif()

if(${testOutputDir} STREQUAL "OFF")
  message("Writing test data folders to = ${CMAKE_BINARY_DIR}/testOutputDir")
  set(testOutputDir "${CMAKE_BINARY_DIR}/testOutputDir")
  execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/testOutputDir)
else()
  # User specified a test output folder, make sure it exists.

isis/Jenkinsfile

0 → 100644
+62 −0
Original line number Diff line number Diff line
pipeline { 
    agent {
        docker {
            label 'cmake'
            image 'chrisryancombs/docker_isis'
            args  '''\
                    -v /usgs/pkgs/local/v007:/usgs/pkgs/local/v007 \
                    -v /usgs/cpkgs/isis3/data:/usgs/cpkgs/isis3/data \
                    -v /usgs/cpkgs/isis3/testData:/usgs/cpkgs/isis3/testData\
                  '''  
        }
    }
    environment {
        ISISROOT="${workspace}" + "/build/"
        ISIS3TESTDATA="/usgs/cpkgs/isis3/testData/"
        ISIS3DATA="/usgs/cpkgs/isis3/data/"
    }
    stages {
        stage('Config') { 
            steps { 
                sh """
                    mkdir -p ./install ./build && cd build
                    cmake -GNinja -DCMAKE_INSTALL_PREFIX=../install -Disis3Data=/usgs/cpkgs/isis3/data -Disis3TestData=/usgs/cpkgs/isis3/testData ../isis \
                   """
            }
        }
        stage('Build') { 
            steps {
                sh """
                    set +e
                    cd build
                    ninja -j8 && ninja install
                   """
            }
        }
        stage('Test'){
            steps {
                sh """
                    export PATH="${PATH}:${ISISROOT}/bin"
                    set +e
                    cd build
                    ctest -j8 -R _unit_ 
                    ctest -j8 -R _app_ 
                    ctest -j8 -R _module_ 
                   """
            }
        }
    }
//    post {
//        success {
//            sh 'pwd && ls'
//            archiveArtifacts artifacts: "build/objects/*.o"
//        }
//        always {
//            mail to: 'ccombs@usgs.gov',
//                    subject: "Build Finished: ${currentBuild.fullDisplayName}",
//                    body: "Link: ${env.BUILD_URL}"
//            sh "rm -rf build/* && rm -rf install/*"
//            cleanWs()
//        }
//    }
}
+84 −27
Original line number Diff line number Diff line
@@ -61,8 +61,8 @@ find_program(MOC moc REQUIRED)
find_program(RCC rcc REQUIRED)
find_program(PROTOC protoc REQUIRED)

include(FindProtobuf)

if(APPLE)
  find_package(OpenGL            REQUIRED)
  find_package(Qt5 COMPONENTS
                  Core
                  Concurrent
@@ -88,6 +88,60 @@ find_package(Qt5 COMPONENTS
                  Widgets
                  Xml
                  XmlPatterns REQUIRED)
else() # oh god why
  find_path(QT5_CORE_INCLUDE_DIR                 NAMES qchar.h                PATH_SUFFIXES qt/qt5.7.1/QtCore/)
  find_path(QT5_CONCURRENT_INCLUDE_DIR           NAMES qtconcurrentmap.h      PATH_SUFFIXES qt/qt5.7.1/QtConcurrent)
  find_path(QT5_DBUS_INCLUDE_DIR                 NAMES qdbusmacros.h          PATH_SUFFIXES qt/qt5.7.1/QtDBus)
  find_path(QT5_GUI_INCLUDE_DIR                  NAMES qpainter.h             PATH_SUFFIXES qt/qt5.7.1/QtGui)
  find_path(QT5_MULTIMEDIA_INCLUDE_DIR           NAMES qmediacontent.h        PATH_SUFFIXES qt/qt5.7.1/QtMultimedia)
  find_path(QT5_MULTIMEDIAWIDGETS_INCLUDE_DIR    NAMES qvideowidget.h         PATH_SUFFIXES qt/qt5.7.1/QtMultimediaWidgets)
  find_path(QT5_NETWORK_INCLUDE_DIR              NAMES qsslsocket.h           PATH_SUFFIXES qt/qt5.7.1/QtNetwork)
  find_path(QT5_OPENGL_INCLUDE_DIR               NAMES qtopenglglobal.h       PATH_SUFFIXES qt/qt5.7.1/QtOpenGL)
  find_path(QT5_POSITIONING_INCLUDE_DIR          NAMES qgeocoordinate.h       PATH_SUFFIXES qt/qt5.7.1/QtPositioning)
  find_path(QT5_PRINTSUPPORT_INCLUDE_DIR         NAMES qprinter.h             PATH_SUFFIXES qt/qt5.7.1/QtPrintSupport)
  find_path(QT5_QML_INCLUDE_DIR                  NAMES qqmlinfo.h             PATH_SUFFIXES qt/qt5.7.1/QtQml)
  find_path(QT5_QUICK_INCLUDE_DIR                NAMES qquickview.h           PATH_SUFFIXES qt/qt5.7.1/QtQuick)
#  find_path(QT5_SCRIPT_INCLUDE_DIR               NAMES qscriptengine.h        PATH_SUFFIXES qt/qt5.7.1/QtScript)
#find_path(QT5_SCRIPTTOOLS_INCLUDE_DIR          NAMES qtscripttoolsversion.h PATH_SUFFIXES qt/qt5.7.1/QtScriptTools)
  find_path(QT5_SENSORS_INCLUDE_DIR              NAMES qgyroscope.h           PATH_SUFFIXES qt/qt5.7.1/QtSensors)
  find_path(QT5_SQL_INCLUDE_DIR                  NAMES qsql.h                 PATH_SUFFIXES qt/qt5.7.1/QtSql)
  find_path(QT5_SVG_INCLUDE_DIR                  NAMES qsvgwidget.h           PATH_SUFFIXES qt/qt5.7.1/QtSvg)
  find_path(QT5_TEST_INCLUDE_DIR                 NAMES qtest.h                PATH_SUFFIXES qt/qt5.7.1/QtTest)
  find_path(QT5_WEBCHANNEL_INCLUDE_DIR           NAMES qwebchannel.h          PATH_SUFFIXES qt/qt5.7.1/QtWebChannel)
  find_path(QT5_WEBENGINE_INCLUDE_DIR            NAMES qtwebengineglobal.h    PATH_SUFFIXES qt/qt5.7.1/QtWebEngine)
  find_path(QT5_WEBENGINEWIDGETS_INCLUDE_DIR     NAMES qwebenginescript.h     PATH_SUFFIXES qt/qt5.7.1/QtWebEngineWidgets)
  find_path(QT5_WIDGETS_INCLUDE_DIR              NAMES qwidget.h              PATH_SUFFIXES qt/qt5.7.1/QtWidgets)
  find_path(QT5_XML_INCLUDE_DIR                  NAMES qxml.h                 PATH_SUFFIXES qt/qt5.7.1/QtXml)
  find_path(QT5_XMLPATTERNS_INCLUDE_DIR          NAMES qtxmlpatternsglobal.h  PATH_SUFFIXES qt/qt5.7.1/QtXmlPatterns)

  get_filename_component(QT5_ROOT_INCLUDE_DIR "${QT5_CORE_INCLUDE_DIR}" DIRECTORY)

  find_library(QT5_CORE_LIBRARY                  NAMES Qt5Core)
  find_library(QT5_CONCURRENT_LIBRARY            NAMES Qt5Concurrent)
  find_library(QT5_DBUS_LIBRARY                  NAMES Qt5DBus)
  find_library(QT5_GUI_LIBRARY                   NAMES Qt5Gui)
  find_library(QT5_MULTIMEDIA_LIBRARY            NAMES Qt5Multimedia)
  find_library(QT5_MULTIMEDIAWIDGETS_LIBRARY     NAMES Qt5MultimediaWidgets)
  find_library(QT5_NETWORK_LIBRARY               NAMES Qt5Network)
  find_library(QT5_OPENGL_LIBRARY                NAMES Qt5OpenGL)
  find_library(QT5_POSITIONING_LIBRARY           NAMES Qt5Positioning)
  find_library(QT5_PRINTSUPPORT_LIBRARY          NAMES Qt5PrintSupport)
  find_library(QT5_QML_LIBRARY                   NAMES Qt5Qml)
  find_library(QT5_QUICK_LIBRARY                 NAMES Qt5Quick)
  find_library(QT5_SCRIPT_LIBRARY                NAMES Qt5Script)
  find_library(QT5_SCRIPTTOOLS_LIBRARY           NAMES Qt5ScriptTools)
  find_library(QT5_SENSORS_LIBRARY               NAMES Qt5Sensors)
  find_library(QT5_SQL_LIBRARY                   NAMES Qt5Sql)
  find_library(QT5_SVG_LIBRARY                   NAMES Qt5Svg)
  find_library(QT5_TEST_LIBRARY                  NAMES Qt5Test)
  find_library(QT5_WEBCHANNEL_LIBRARY            NAMES Qt5WebChannel)
  find_library(QT5_WEBENGINE_LIBRARY             NAMES Qt5WebEngine)
  find_library(QT5_WEBENGINECORE_LIBRARY         NAMES Qt5WebEngineCore)
  find_library(QT5_WEBENGINEWIDGETS_LIBRARY      NAMES Qt5WebEngineWidgets)
  find_library(QT5_WIDGETS_LIBRARY               NAMES Qt5Widgets)
  find_library(QT5_XML_LIBRARY                   NAMES Qt5Xml)
  find_library(QT5_XMLPATTERNS_LIBRARY           NAMES Qt5XmlPatterns)
endif(APPLE)

# Some of these will have non-traditional installs with version numbers in the paths in v007
# For these, we pass in a version number, and use it in the path suffix
@@ -106,6 +160,7 @@ find_package(HDF5 1.8.15 REQUIRED)
find_package(Jama      125     REQUIRED) # Jama version is 1.2.5, but v007 directory is "jama/jama125/"
find_package(NN                REQUIRED)
find_package(OpenCV    3.1.0   REQUIRED)
find_package(OpenGL            REQUIRED)
find_package(PCL       1.8     REQUIRED) # "pcl-${PCL_FIND_VERSION}"
find_package(Protobuf  2.6.1   REQUIRED) # "google-protobuf/protobuf${Protobuf_FIND_VERSION}/"
find_package(Qwt       6       REQUIRED) # "qwt${Qwt_FIND_VERSION}"
@@ -118,6 +173,7 @@ find_package(nanoflann REQUIRED)
find_package(PNG               REQUIRED)
find_package(Kakadu)


# v007 might have different versions installed for our mac and linux systems.
# Im this case, we specify the version numbers being searched for in the non-traditional installs.
if(APPLE)
@@ -163,3 +219,4 @@ endforeach()
list(REMOVE_DUPLICATES ALLLIBDIRS)
list(REMOVE_DUPLICATES ALLLIBS)
list(REMOVE_DUPLICATES ALLINCDIRS)
+8 −6
Original line number Diff line number Diff line
@@ -25,12 +25,14 @@ endif()
# Dependencies for lapack

# add gcc location for MacOS
# if(APPLE)
  find_library(FORTRAN_LIBRARY      NAMES gfortran
    NAMES gfortran
    PATHS /opt/usgs/v007/ports/lib/gcc5/
  )

  find_library(BLAS_LIBRARY NAMES blas)
# endif(APPLE)

get_filename_component(CHOLMOD_ROOT_INCLUDE_DIR "${CHOLMOD_INCLUDE_DIR}" DIRECTORY)

+27 −0
Original line number Diff line number Diff line
# CMake module for find_package(OpenGL)
# Finds include directory and all applicable libraries
#
# Sets the following:
#   KAKADU_INCLUDE_DIR
#   KAKADU_A_LIBRARY
#   KAKADU_V_LIBRARY

find_path(OPENGL_INCLUDE_DIR
  NAME gl.h
  PATH_SUFFIXES GL
  HINTS GL
)

find_library(GL_LIBRARY
  NAMES GL
)

find_library(GLU_LIBRARY
  NAMES GLU
)
message("==================")
message(${OPENGL_INCLUDE_DIR})
message(${GL_LIBRARY})
message(${GLU_LIBRARY})

get_filename_component(OPENGL_INCLUDE_DIR "${OPENGL_INCLUDE_DIR}" DIRECTORY)
Loading