From 71f635c1fb10d80b6f944f94df57c0a1b0378dca Mon Sep 17 00:00:00 2001 From: Benjamin Spencer Date: Fri, 15 Mar 2019 10:40:34 -0500 Subject: [PATCH] Remove libxml and dependencies from build files ref #20 --- .travis.yml | 2 +- CMakeLists.txt | 3 +- INSTALL.md | 14 +++------ cmake/Modules/Findglib.cmake | 34 ---------------------- cmake/Modules/Findglibmm.cmake | 44 ---------------------------- cmake/Modules/Findlibxml++.cmake | 49 -------------------------------- cmake/Modules/Findsigc++.cmake | 36 ----------------------- doc/sphinx/started.rst | 10 ++----- 8 files changed, 8 insertions(+), 184 deletions(-) delete mode 100644 cmake/Modules/Findglib.cmake delete mode 100644 cmake/Modules/Findglibmm.cmake delete mode 100644 cmake/Modules/Findlibxml++.cmake delete mode 100644 cmake/Modules/Findsigc++.cmake diff --git a/.travis.yml b/.travis.yml index f1f76267..63ffe84d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ sudo: enabled before_install: - - sudo apt-get install -y build-essential cmake libxml++2.6-dev libboost-dev libblas-dev liblapack-dev python-dev python-networkx python-numpy python-scipy python-matplotlib python-nose + - sudo apt-get install -y build-essential cmake libboost-dev libblas-dev liblapack-dev python-dev python-networkx python-numpy python-scipy python-matplotlib python-nose install: - cmake -D WRAP_PYTHON=ON . - make diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c7d8ff4..0576ed63 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,9 +37,8 @@ INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIRS}) set(BLAS_VENDOR Generic) FIND_PACKAGE(BLAS REQUIRED) FIND_PACKAGE(LAPACK REQUIRED) -FIND_PACKAGE(libxml++ REQUIRED) -INCLUDE_DIRECTORIES(SYSTEM ${libxml++_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(SYSTEM rapidxml) ### PLATFORM AND COMPILER SPECIFIC OPTIONS ### # Make better debug on Intel diff --git a/INSTALL.md b/INSTALL.md index c279e196..d23b1e5d 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -12,7 +12,7 @@ These instructions assuming you are building in the source directory. To compile just the base library: ``` -apt-get install build-essential cmake libxml++2.6-dev libboost-dev libblas-dev liblapack-dev +apt-get install build-essential cmake libboost-dev libblas-dev liblapack-dev cmake . make ``` @@ -20,7 +20,7 @@ make To compile both the base library and the python bindings: ``` -apt-get install build-essential cmake libxml++2.6-dev libboost-dev libblas-dev liblapack-dev python-dev python-networkx python-numpy python-scipy python-matplotlib python-nose +apt-get install build-essential cmake libboost-dev libblas-dev liblapack-dev python-dev python-networkx python-numpy python-scipy python-matplotlib python-nose cmake -D WRAP_PYTHON=ON . make ``` @@ -36,7 +36,7 @@ nosetests For just the base library setup prerequisites ``` -brew install libxml++ boost cmake +brew install boost cmake ``` and then build the library @@ -49,7 +49,7 @@ make For the library and the python bindings setup prerequisites ``` -brew install libxml++ boost cmake python@2 +brew install boost cmake python@2 pip install nose numpy scipy nose matplotlib networkx ``` @@ -58,9 +58,3 @@ and then build the library cmake -D WRAP_PYTHON=ON . make ``` - -Users have reported that if you use libxml++3 you may need to manually request -libxml2 as well and add the libxml2 pkgconfig path to the environment: -``` -export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opt/libxml2/lib/pkgconfig -``` diff --git a/cmake/Modules/Findglib.cmake b/cmake/Modules/Findglib.cmake deleted file mode 100644 index c02b518d..00000000 --- a/cmake/Modules/Findglib.cmake +++ /dev/null @@ -1,34 +0,0 @@ -# Variables to define: -# Glib_FOUND - system has Glib -# Glib_INCLUDE_DIRS - the Glib include directories -# Glib_LIBRARIES - link these to use Glib - -# Hunt down pkg-config info -find_package(PkgConfig) -pkg_check_modules(Glib_PKGCONF glib-2.0 REQUIRED) - -# Main include dir -find_path(Glib_INCLUDE_DIR - NAMES glib.h - PATHS ${Glib_PKGCONF_INCLUDE_DIRS} - PATH_SUFFIXES glib-2.0 -) - -# Glib-related libraries also use a separate config header, which is in lib dir -find_path(GlibConfig_INCLUDE_DIR - NAMES glibconfig.h - PATHS ${Glib_PKGCONF_INCLUDE_DIRS} /usr - PATH_SUFFIXES lib/glib-2.0/include -) - -# Finally the library itself -find_library(Glib_LIBRARY - NAMES glib-2.0 - PATHS ${Glib_PKGCONF_LIBRARY_DIRS} -) - -set(Glib_FOUND TRUE) -set(Glib_INCLUDE_DIRS ${Glib_INCLUDE_DIR} ${GlibConfig_INCLUDE_DIR}) -set(Glib_LIBRARIES ${Glib_LIBRARY}) - -mark_as_advanced(GlibConfig_INCLUDE_DIR Glib_INCLUDE_DIR Glib_LIBRARY) diff --git a/cmake/Modules/Findglibmm.cmake b/cmake/Modules/Findglibmm.cmake deleted file mode 100644 index 57536c11..00000000 --- a/cmake/Modules/Findglibmm.cmake +++ /dev/null @@ -1,44 +0,0 @@ -# Variables to define: -# glibmm_FOUND - system has Glib -# glibmm_INCLUDE_DIRS - the Glib include directories -# glibmm_LIBRARIES - link these to use Glib - -IF(glibmm_FIND_REQUIRED) - FIND_PACKAGE(glib REQUIRED) - FIND_PACKAGE(sigc++ REQUIRED) -ELSE(glibmm_FIND_REQUIRED) - FIND_PACKAGE(glib) - FIND_PACKAGE(sigc++) -ENDIF(glibmm_FIND_REQUIRED) - -# Hunt down pkg-config info -find_package(PkgConfig) -pkg_check_modules(glibmm_PKGCONF glibmm-2.4 REQUIRED) - -# Main include dir -find_path(glibmm_INCLUDE_DIR - NAMES glibmm/main.h - PATHS ${glibmm_PKGCONF_INCLUDE_DIRS} - PATH_SUFFIXES glibmm-2.4 -) - -# Glib-related libraries also use a separate config header, which is in lib dir -find_path(glibmmConfig_INCLUDE_DIR - NAMES glibmmconfig.h - PATHS ${glibmm_PKGCONF_INCLUDE_DIRS} - PATH_SUFFIXES lib/glibmm-2.4/include -) - -# Finally the library itself -find_library(glibmm_LIBRARY - NAMES glibmm glibmm-2.4 - PATHS ${glibmm_PKGCONF_LIBRARY_DIRS} -) - -set(glibmm_FOUND TRUE) -set(glibmm_INCLUDE_DIRS ${glibmm_INCLUDE_DIR} ${glibmmConfig_INCLUDE_DIR} ${Glib_INCLUDE_DIRS} ${sigc++_INCLUDE_DIRS}) -set(glibmm_LIBRARIES ${glibmm_LIBRARY} ${Glib_LIBRARES} ${sigc++_LIBRARIES}) - -mark_as_advanced(glibmmConfig_INCLUDE_DIR glibmm_INCLUDE_DIR glibmm_LIBRARY) - - diff --git a/cmake/Modules/Findlibxml++.cmake b/cmake/Modules/Findlibxml++.cmake deleted file mode 100644 index 9c9c2db3..00000000 --- a/cmake/Modules/Findlibxml++.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Variables to define: -# libxml++_FOUND - system has Glib -# libxml++_INCLUDE_DIRS - the Glib include directories -# libxml++_LIBRARIES - link these to use Glib - -IF(libxml++_FIND_REQUIRED) - FIND_PACKAGE(glibmm REQUIRED) - FIND_PACKAGE(LibXml2 REQUIRED) -ELSE(libxml++_FIND_REQUIRED) - FIND_PACKAGE(glibmm) - FIND_PACKAGE(LibXml2) -ENDIF(libxml++_FIND_REQUIRED) - -# Hunt down pkg-config info -find_package(PkgConfig) -pkg_search_module(libxml++_PKGCONF libxml++-3.0 libxml++-2.9 libxml++-2.8 libxml++-2.7 libxml++-2.6 REQUIRED) - -STRING(SUBSTRING ${libxml++_PKGCONF_VERSION} 0 1 MAJOR_VERSION) -STRING(COMPARE EQUAL ${MAJOR_VERSION} 3 LIBXML++_V3) -if (${LIBXML++_V3}) - add_definitions(-DLIBXMLppV3) -endif() - -# Main include dir -find_path(libxml++_INCLUDE_DIR - NAMES libxml++/libxml++.h - PATHS ${libxml++_PKGCONF_INCLUDE_DIRS} -) - -# Glib-related libraries also use a separate config header, which is in lib dir -find_path(libxml++Config_INCLUDE_DIR - NAMES libxml++config.h - PATHS ${libxml++_PKGCONF_INCLUDE_DIRS} -) - -# Finally the library itself -find_library(libxml++_LIBRARY - NAMES xml++ xml++-3.0 xml++-2.9 xml++-2.8 xml++-2.7 xml++-2.6 - PATHS ${libxml++_PKGCONF_LIBRARY_DIRS} -) - -set(libxml++_FOUND TRUE) -set(libxml++_INCLUDE_DIRS ${libxml++_INCLUDE_DIR} ${libxml++Config_INCLUDE_DIR} ${glibmm_INCLUDE_DIRS} ${LibXml2_INLUDE_DIRS}) -set(libxml++_LIBRARIES ${libxml++_LIBRARY} ${glibmm_LIBRARIES} ${LibXml2_LIBRARIES}) - -mark_as_advanced(libxml++Config_INCLUDE_DIR libxml++_INCLUDE_DIR libxml++_LIBRARY) - - - diff --git a/cmake/Modules/Findsigc++.cmake b/cmake/Modules/Findsigc++.cmake deleted file mode 100644 index 8eb2a1c6..00000000 --- a/cmake/Modules/Findsigc++.cmake +++ /dev/null @@ -1,36 +0,0 @@ -# Variables to define: -# sigc++_FOUND - system has Glib -# sigc++_INCLUDE_DIRS - the Glib include directories -# sigc++_LIBRARIES - link these to use Glib - -# Hunt down pkg-config info -find_package(PkgConfig) -pkg_check_modules(sigc++_PKGCONF sigc++-2.0 REQUIRED) - -# Main include dir -find_path(sigc++_INCLUDE_DIR - NAMES sigc++/sigc++.h - PATHS ${sigc++_PKGCONF_INCLUDE_DIRS} - PATH_SUFFIXES sigc++-2.0 -) - -# Glib-related libraries also use a separate config header, which is in lib dir -find_path(sigc++Config_INCLUDE_DIR - NAMES sigc++config.h - PATHS ${sigc++_PKGCONF_INCLUDE_DIRS} - PATH_SUFFIXES lib/sigc++-2.0/include -) - -# Finally the library itself -find_library(sigc++_LIBRARY - NAMES sigc sigc-2.0 - PATHS ${sigc++_PKGCONF_LIBRARY_DIRS} -) - -set(sigc++_FOUND TRUE) -set(sigc++_INCLUDE_DIRS ${sigc++_INCLUDE_DIR} ${sigc++Config_INCLUDE_DIR}) -set(sigc++_LIBRARIES ${sigc++_LIBRARY}) - -mark_as_advanced(sigc++Config_INCLUDE_DIR sigc++_INCLUDE_DIR sigc++_LIBRARY) - - diff --git a/doc/sphinx/started.rst b/doc/sphinx/started.rst index 45ab0fcf..27fbf5b7 100644 --- a/doc/sphinx/started.rst +++ b/doc/sphinx/started.rst @@ -5,13 +5,7 @@ Installing NEML --------------- Compiling NEML requires the NEML source, a C++ compiler, -the `Boost `_ library, -and `libxml++ `_, -which in turn requires -`glib `_, -`glibmm `_, -`sigc++ `_, -and `libxml2 `_. +and the `Boost `_ library. Additionally, you will need `BLAS `_ and `LAPACK `_. @@ -53,7 +47,7 @@ First install the prerequisites .. code-block:: console - apt-get install build-essential git cmake libxml++2.6-dev libboost-dev libblas-dev liblapack-dev + apt-get install build-essential git cmake libboost-dev libblas-dev liblapack-dev Clone the neml source code