Loading isis/CMakeLists.txt +103 −79 Original line number Diff line number Diff line Loading @@ -68,45 +68,6 @@ option(buildTests "Set up unit, application, and module tests." ON ) option(JP2KFLAG "Whether or not to build using JPEG2000 support" ON ) option(pybindings "Turn on to build Python bindings" ON ) # Iterate through all variables and extract the libraries and include directories get_cmake_property(_variableNames VARIABLES) # Get All VARIABLES set(ALLLIBDIRS "") set(ALLLIBS "") set(ALLINCDIRS "") # Get all include dir variables foreach (_variableName ${_variableNames}) #message("VAR=${_variableName}") if (_variableName MATCHES ".+_INCLUDE_DIR$") list(APPEND ALLINCDIRS "${${_variableName}}") elseif (_variableName MATCHES ".+_INCLUDE_PATH$") list(APPEND ALLINCDIRS "${${_variableName}}") endif(_variableName MATCHES ".+_INCLUDE_DIR$") endforeach() # get all Library variables foreach (_variableName ${_variableNames}) get_filename_component(LIBDIR "${${_variableName}}" DIRECTORY) if (_variableName MATCHES "^CMAKE+") elseif (_variableName MATCHES ".+_LIB$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") elseif (_variableName MATCHES ".+_LIBRARY$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") elseif (_variableName MATCHES ".+_LIBRARIES$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") endif() endforeach() # Sometimes we add the same lib more than once (especially with LIBDIRS) list(REMOVE_DUPLICATES ALLLIBDIRS) list(REMOVE_DUPLICATES ALLLIBS) list(REMOVE_DUPLICATES ALLINCDIRS) # if cmake install prefix is not set, and conda env is activated, use the # conda env as the install directory if(DEFINED ENV{CONDA_PREFIX} AND CMAKE_INSTALL_PREFIX STREQUAL "/usr/local") Loading Loading @@ -145,6 +106,10 @@ else() execute_process(COMMAND mkdir -p ${testOutputDir}) endif() # inject ISISROOT add_definitions( -DISISROOT="${CMAKE_SOURCE_DIR}" ) add_definitions( -DISISBUILDDIR="${CMAKE_BINARY_DIR}" ) message("CONFIGURATION") message("\tBUILD STATIC CORE: ${buildStaticCore}") message("\tBUILD TESTS: ${buildTests}") Loading @@ -160,6 +125,7 @@ message("\tINSTALL PREFIX: ${CMAKE_INSTALL_PREFIX}") #=============================================================================== #=============================================================================== # Set up Anaconda prefix in the case with a non-default conda env is activated if(EXISTS $ENV{CONDA_PREFIX}) message("CONDA PREFIX: $ENV{CONDA_PREFIX}") list(APPEND CMAKE_FIND_ROOT_PATH $ENV{CONDA_PREFIX} Loading @@ -180,7 +146,6 @@ set(thirdPartyCppFlags -Wall -DISIS_LITTLE_ENDIAN=1 -fPIC -Wno-unused-parameter -Wno-overloaded-virtual -Wl,-rpath,$ENV{CONDA_PREFIX}/lib -DGMM_USES_SUPERLU -DENABLEJP2K=${JP2KFLAG} ) Loading @@ -194,41 +159,8 @@ set(thirdPartyCppFlags -Wall # Flag to fix numeric literals problem with boost on linux if(NOT APPLE) set(thirdPartyCppFlags ${thirdPartyCppFlags} -fext-numeric-literals) endif() # Set python bindings configuration and set target for generating C++ files if(pybindings) find_package(Python REQUIRED) find_package(Sip REQUIRED) # use PYINSTALL_DIR to overwrite python install directory # Better to use find Python script if (NOT DEFINED PYINSTALL_DIR) set(PYINSTALL_PREFIX ${PYTHON_SITE_PACKAGES_DIR}) endif() # We need to get the locations for sip files, modules, etc. set(ISIS_SIP_DIR "${CMAKE_SOURCE_DIR}/sipfiles") set(ISIS_SIP_MODULE "${CMAKE_SOURCE_DIR}/sipfiles/master.sip") set(SIP_BUILD_FILE "sippy.sbf") set(ISIS_SIP_CODE_DIR ${CMAKE_BINARY_DIR}/sipsrc) execute_process(COMMAND mkdir -p "${ISIS_SIP_CODE_DIR}") # get the PYQT configuration based flags from Python execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from PyQt5.QtCore import PYQT_CONFIGURATION as qtconfigdict;print(qtconfigdict['sip_flags'])" OUTPUT_VARIABLE PYQT_SIP_FLAGS) # CMAKE doesn't handle spaces from python well when piping that into the # command because of white space and a trailing new line, # so we turn it into a list string(STRIP ${PYQT_SIP_FLAGS} PYQT_SIP_FLAGS) string(REPLACE " " ";" PYQT_SIP_FLAGS ${PYQT_SIP_FLAGS}) add_custom_target(sipfiles COMMAND ${SIP_BINARY_PATH} -e -c ${ISIS_SIP_CODE_DIR} -I ${SIP_DEFAULT_SIP_DIR}/PyQt5 ${PYQT_SIP_FLAGS} ${ISIS_SIP_MODULE} COMMENT "Generating C++ code from sip files") set(thirdPartyCppFlags ${thirdPartyCppFlags} -fext-numeric-literals -Wl,-rpath,$ENV{CONDA_PREFIX}/lib) endif() # Paths to required executables Loading Loading @@ -296,8 +228,104 @@ if(APPLE) find_package(OpenGL REQUIRED) endif(APPLE) if(pybindings) find_package(Python REQUIRED) find_package(Sip REQUIRED) endif() # Iterate through all variables and extract the libraries and include directories get_cmake_property(_variableNames VARIABLES) # Get All VARIABLES set(ALLLIBDIRS "") set(ALLLIBS "") set(ALLINCDIRS "") # Get all include dir variables foreach (_variableName ${_variableNames}) #message("VAR=${_variableName}") if (_variableName MATCHES ".+_INCLUDE_DIR$") list(APPEND ALLINCDIRS "${${_variableName}}") elseif (_variableName MATCHES ".+_INCLUDE_PATH$") list(APPEND ALLINCDIRS "${${_variableName}}") endif(_variableName MATCHES ".+_INCLUDE_DIR$") endforeach() # get all Library variables foreach (_variableName ${_variableNames}) get_filename_component(LIBDIR "${${_variableName}}" DIRECTORY) if (_variableName MATCHES "^CMAKE+") elseif (_variableName MATCHES ".+_LIB$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") elseif (_variableName MATCHES ".+_LIBRARY$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") elseif (_variableName MATCHES ".+_LIBRARIES$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") endif() endforeach() # Sometimes we add the same lib more than once (especially with LIBDIRS) list(REMOVE_DUPLICATES ALLLIBDIRS) list(REMOVE_DUPLICATES ALLLIBS) list(REMOVE_DUPLICATES ALLINCDIRS) #=============================================================================== #=============================================================================== # Set python bindings configuration and set target for generating C++ files if(pybindings) message("Configuring Python Bindings") if (NOT DEFINED PYINSTALL_DIR) set(PYINSTALL_DIR ${PYTHON_SITE_PACKAGES_DIR}) endif() message("PYTHON BINDINGS INSTALL DIR: ${PYINSTALL_DIR}") # We need to get the locations for sip files, modules, etc. set(ISIS_SIP_DIR "${CMAKE_SOURCE_DIR}/sipfiles") set(ISIS_SIP_MODULE "${CMAKE_SOURCE_DIR}/sipfiles/master.sip") set(SIP_BUILD_FILE "isispy.sbf") set(ISIS_SIP_CODE_DIR ${CMAKE_BINARY_DIR}/sipsrc) # Create the output directory for the new .CPP files execute_process(COMMAND mkdir -p "${ISIS_SIP_CODE_DIR}") # get list of output files exepected from sip # get the PYQT configuration based flags from Python execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from PyQt5.QtCore import PYQT_CONFIGURATION as qtconfigdict;print(qtconfigdict['sip_flags'])" OUTPUT_VARIABLE PYQT_SIP_FLAGS) # CMAKE doesn't handle spaces from python well when piping that into the # command because of white space and a trailing new line, # so we turn it into a list string(STRIP ${PYQT_SIP_FLAGS} PYQT_SIP_FLAGS) string(REPLACE " " ";" PYQT_SIP_FLAGS ${PYQT_SIP_FLAGS}) message("Generating C++ code from sip files") execute_process(COMMAND ${SIP_BINARY_PATH} -e -o -c ${ISIS_SIP_CODE_DIR} -I ${SIP_DEFAULT_SIP_DIR}/PyQt5 ${PYQT_SIP_FLAGS} ${ISIS_SIP_MODULE}) # add target so users can run the command after initial configuration add_custom_target(sipfiles COMMAND ${SIP_BINARY_PATH} -e -o -c ${ISIS_SIP_CODE_DIR} -I ${SIP_DEFAULT_SIP_DIR}/PyQt5 ${PYQT_SIP_FLAGS} ${ISIS_SIP_MODULE} COMMENT "Generating C++ code from sip files") file(GLOB SIP_GENERATED_SOURCE_FILES ${ISIS_SIP_CODE_DIR}/*.cpp) add_library(isispy MODULE ${SIP_GENERATED_SOURCE_FILES}) target_link_libraries(isispy ${ALLLIBS}) target_link_libraries(isispy isis3) set_target_properties(isispy PROPERTIES LINK_DEPENDS isis3) add_dependencies(isispy sipfiles) install(TARGETS isispy DESTINATION ${PYINSTALL_DIR}) endif() #=============================================================================== #=============================================================================== # Start setting up the build # Add extension to find fortran until .so symlink can be added to /usr/lib64 list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so.3 .so.6 .so.5) Loading @@ -306,10 +334,6 @@ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so.3 .so.6 .so.5) include_directories(SYSTEM ${ALLINCDIRS}) link_directories(${ALLLIBDIRS}) # inject ISISROOT add_definitions( -DISISROOT="${CMAKE_SOURCE_DIR}" ) add_definitions( -DISISBUILDDIR="${CMAKE_BINARY_DIR}" ) # add isis headers file(GLOB ISIS_HEADERS ${CMAKE_SOURCE_DIR}/src/*/objs/*/*.h ${CMAKE_SOURCE_DIR}/src/*/objs/*/*.hpp) Loading isis/sipfiles/BundleAdjust.sip +1 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ namespace Isis { try { sipCpp = new sipIsis_BundleAdjust(*wrappedSettings, *a1, *a2, a3); } catch (Isis::IException &error) {Ò catch (Isis::IException &error) { PyErr_SetString(sipException_Isis_IException, error.what()); return NULL; } Loading isis/sipfiles/ControlNet.sip +0 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ namespace Isis { void Write(const QString &filename, bool pvl = false) throw(Isis::IException); bool IsValid() const throw(Isis::IException); double GetMaximumResidual() throw(Isis::IException); QString GetNetworkId() const throw(Isis::IException); int GetNumEditLockMeasures() throw(Isis::IException); Loading Loading
isis/CMakeLists.txt +103 −79 Original line number Diff line number Diff line Loading @@ -68,45 +68,6 @@ option(buildTests "Set up unit, application, and module tests." ON ) option(JP2KFLAG "Whether or not to build using JPEG2000 support" ON ) option(pybindings "Turn on to build Python bindings" ON ) # Iterate through all variables and extract the libraries and include directories get_cmake_property(_variableNames VARIABLES) # Get All VARIABLES set(ALLLIBDIRS "") set(ALLLIBS "") set(ALLINCDIRS "") # Get all include dir variables foreach (_variableName ${_variableNames}) #message("VAR=${_variableName}") if (_variableName MATCHES ".+_INCLUDE_DIR$") list(APPEND ALLINCDIRS "${${_variableName}}") elseif (_variableName MATCHES ".+_INCLUDE_PATH$") list(APPEND ALLINCDIRS "${${_variableName}}") endif(_variableName MATCHES ".+_INCLUDE_DIR$") endforeach() # get all Library variables foreach (_variableName ${_variableNames}) get_filename_component(LIBDIR "${${_variableName}}" DIRECTORY) if (_variableName MATCHES "^CMAKE+") elseif (_variableName MATCHES ".+_LIB$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") elseif (_variableName MATCHES ".+_LIBRARY$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") elseif (_variableName MATCHES ".+_LIBRARIES$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") endif() endforeach() # Sometimes we add the same lib more than once (especially with LIBDIRS) list(REMOVE_DUPLICATES ALLLIBDIRS) list(REMOVE_DUPLICATES ALLLIBS) list(REMOVE_DUPLICATES ALLINCDIRS) # if cmake install prefix is not set, and conda env is activated, use the # conda env as the install directory if(DEFINED ENV{CONDA_PREFIX} AND CMAKE_INSTALL_PREFIX STREQUAL "/usr/local") Loading Loading @@ -145,6 +106,10 @@ else() execute_process(COMMAND mkdir -p ${testOutputDir}) endif() # inject ISISROOT add_definitions( -DISISROOT="${CMAKE_SOURCE_DIR}" ) add_definitions( -DISISBUILDDIR="${CMAKE_BINARY_DIR}" ) message("CONFIGURATION") message("\tBUILD STATIC CORE: ${buildStaticCore}") message("\tBUILD TESTS: ${buildTests}") Loading @@ -160,6 +125,7 @@ message("\tINSTALL PREFIX: ${CMAKE_INSTALL_PREFIX}") #=============================================================================== #=============================================================================== # Set up Anaconda prefix in the case with a non-default conda env is activated if(EXISTS $ENV{CONDA_PREFIX}) message("CONDA PREFIX: $ENV{CONDA_PREFIX}") list(APPEND CMAKE_FIND_ROOT_PATH $ENV{CONDA_PREFIX} Loading @@ -180,7 +146,6 @@ set(thirdPartyCppFlags -Wall -DISIS_LITTLE_ENDIAN=1 -fPIC -Wno-unused-parameter -Wno-overloaded-virtual -Wl,-rpath,$ENV{CONDA_PREFIX}/lib -DGMM_USES_SUPERLU -DENABLEJP2K=${JP2KFLAG} ) Loading @@ -194,41 +159,8 @@ set(thirdPartyCppFlags -Wall # Flag to fix numeric literals problem with boost on linux if(NOT APPLE) set(thirdPartyCppFlags ${thirdPartyCppFlags} -fext-numeric-literals) endif() # Set python bindings configuration and set target for generating C++ files if(pybindings) find_package(Python REQUIRED) find_package(Sip REQUIRED) # use PYINSTALL_DIR to overwrite python install directory # Better to use find Python script if (NOT DEFINED PYINSTALL_DIR) set(PYINSTALL_PREFIX ${PYTHON_SITE_PACKAGES_DIR}) endif() # We need to get the locations for sip files, modules, etc. set(ISIS_SIP_DIR "${CMAKE_SOURCE_DIR}/sipfiles") set(ISIS_SIP_MODULE "${CMAKE_SOURCE_DIR}/sipfiles/master.sip") set(SIP_BUILD_FILE "sippy.sbf") set(ISIS_SIP_CODE_DIR ${CMAKE_BINARY_DIR}/sipsrc) execute_process(COMMAND mkdir -p "${ISIS_SIP_CODE_DIR}") # get the PYQT configuration based flags from Python execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from PyQt5.QtCore import PYQT_CONFIGURATION as qtconfigdict;print(qtconfigdict['sip_flags'])" OUTPUT_VARIABLE PYQT_SIP_FLAGS) # CMAKE doesn't handle spaces from python well when piping that into the # command because of white space and a trailing new line, # so we turn it into a list string(STRIP ${PYQT_SIP_FLAGS} PYQT_SIP_FLAGS) string(REPLACE " " ";" PYQT_SIP_FLAGS ${PYQT_SIP_FLAGS}) add_custom_target(sipfiles COMMAND ${SIP_BINARY_PATH} -e -c ${ISIS_SIP_CODE_DIR} -I ${SIP_DEFAULT_SIP_DIR}/PyQt5 ${PYQT_SIP_FLAGS} ${ISIS_SIP_MODULE} COMMENT "Generating C++ code from sip files") set(thirdPartyCppFlags ${thirdPartyCppFlags} -fext-numeric-literals -Wl,-rpath,$ENV{CONDA_PREFIX}/lib) endif() # Paths to required executables Loading Loading @@ -296,8 +228,104 @@ if(APPLE) find_package(OpenGL REQUIRED) endif(APPLE) if(pybindings) find_package(Python REQUIRED) find_package(Sip REQUIRED) endif() # Iterate through all variables and extract the libraries and include directories get_cmake_property(_variableNames VARIABLES) # Get All VARIABLES set(ALLLIBDIRS "") set(ALLLIBS "") set(ALLINCDIRS "") # Get all include dir variables foreach (_variableName ${_variableNames}) #message("VAR=${_variableName}") if (_variableName MATCHES ".+_INCLUDE_DIR$") list(APPEND ALLINCDIRS "${${_variableName}}") elseif (_variableName MATCHES ".+_INCLUDE_PATH$") list(APPEND ALLINCDIRS "${${_variableName}}") endif(_variableName MATCHES ".+_INCLUDE_DIR$") endforeach() # get all Library variables foreach (_variableName ${_variableNames}) get_filename_component(LIBDIR "${${_variableName}}" DIRECTORY) if (_variableName MATCHES "^CMAKE+") elseif (_variableName MATCHES ".+_LIB$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") elseif (_variableName MATCHES ".+_LIBRARY$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") elseif (_variableName MATCHES ".+_LIBRARIES$") list(APPEND ALLLIBDIRS "${LIBDIR}") list(APPEND ALLLIBS "${${_variableName}}") endif() endforeach() # Sometimes we add the same lib more than once (especially with LIBDIRS) list(REMOVE_DUPLICATES ALLLIBDIRS) list(REMOVE_DUPLICATES ALLLIBS) list(REMOVE_DUPLICATES ALLINCDIRS) #=============================================================================== #=============================================================================== # Set python bindings configuration and set target for generating C++ files if(pybindings) message("Configuring Python Bindings") if (NOT DEFINED PYINSTALL_DIR) set(PYINSTALL_DIR ${PYTHON_SITE_PACKAGES_DIR}) endif() message("PYTHON BINDINGS INSTALL DIR: ${PYINSTALL_DIR}") # We need to get the locations for sip files, modules, etc. set(ISIS_SIP_DIR "${CMAKE_SOURCE_DIR}/sipfiles") set(ISIS_SIP_MODULE "${CMAKE_SOURCE_DIR}/sipfiles/master.sip") set(SIP_BUILD_FILE "isispy.sbf") set(ISIS_SIP_CODE_DIR ${CMAKE_BINARY_DIR}/sipsrc) # Create the output directory for the new .CPP files execute_process(COMMAND mkdir -p "${ISIS_SIP_CODE_DIR}") # get list of output files exepected from sip # get the PYQT configuration based flags from Python execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from PyQt5.QtCore import PYQT_CONFIGURATION as qtconfigdict;print(qtconfigdict['sip_flags'])" OUTPUT_VARIABLE PYQT_SIP_FLAGS) # CMAKE doesn't handle spaces from python well when piping that into the # command because of white space and a trailing new line, # so we turn it into a list string(STRIP ${PYQT_SIP_FLAGS} PYQT_SIP_FLAGS) string(REPLACE " " ";" PYQT_SIP_FLAGS ${PYQT_SIP_FLAGS}) message("Generating C++ code from sip files") execute_process(COMMAND ${SIP_BINARY_PATH} -e -o -c ${ISIS_SIP_CODE_DIR} -I ${SIP_DEFAULT_SIP_DIR}/PyQt5 ${PYQT_SIP_FLAGS} ${ISIS_SIP_MODULE}) # add target so users can run the command after initial configuration add_custom_target(sipfiles COMMAND ${SIP_BINARY_PATH} -e -o -c ${ISIS_SIP_CODE_DIR} -I ${SIP_DEFAULT_SIP_DIR}/PyQt5 ${PYQT_SIP_FLAGS} ${ISIS_SIP_MODULE} COMMENT "Generating C++ code from sip files") file(GLOB SIP_GENERATED_SOURCE_FILES ${ISIS_SIP_CODE_DIR}/*.cpp) add_library(isispy MODULE ${SIP_GENERATED_SOURCE_FILES}) target_link_libraries(isispy ${ALLLIBS}) target_link_libraries(isispy isis3) set_target_properties(isispy PROPERTIES LINK_DEPENDS isis3) add_dependencies(isispy sipfiles) install(TARGETS isispy DESTINATION ${PYINSTALL_DIR}) endif() #=============================================================================== #=============================================================================== # Start setting up the build # Add extension to find fortran until .so symlink can be added to /usr/lib64 list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so.3 .so.6 .so.5) Loading @@ -306,10 +334,6 @@ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so.3 .so.6 .so.5) include_directories(SYSTEM ${ALLINCDIRS}) link_directories(${ALLLIBDIRS}) # inject ISISROOT add_definitions( -DISISROOT="${CMAKE_SOURCE_DIR}" ) add_definitions( -DISISBUILDDIR="${CMAKE_BINARY_DIR}" ) # add isis headers file(GLOB ISIS_HEADERS ${CMAKE_SOURCE_DIR}/src/*/objs/*/*.h ${CMAKE_SOURCE_DIR}/src/*/objs/*/*.hpp) Loading
isis/sipfiles/BundleAdjust.sip +1 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ namespace Isis { try { sipCpp = new sipIsis_BundleAdjust(*wrappedSettings, *a1, *a2, a3); } catch (Isis::IException &error) {Ò catch (Isis::IException &error) { PyErr_SetString(sipException_Isis_IException, error.what()); return NULL; } Loading
isis/sipfiles/ControlNet.sip +0 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ namespace Isis { void Write(const QString &filename, bool pvl = false) throw(Isis::IException); bool IsValid() const throw(Isis::IException); double GetMaximumResidual() throw(Isis::IException); QString GetNetworkId() const throw(Isis::IException); int GetNumEditLockMeasures() throw(Isis::IException); Loading