From 4121a7c890938a664b4bc72b643f79b7043163b3 Mon Sep 17 00:00:00 2001 From: Markus Blatt <mblatt@dune-project.org> Date: Tue, 3 Apr 2012 13:18:29 +0000 Subject: [PATCH] Cmake now installs headers, libs, m4 macros, shell scripts. The documentation is still not built and therefore not installed [[Imported from SVN: r6602]] --- CMakeLists.txt | 25 ++++++++-- am/CMakeLists.txt | 14 ++++++ bin/CMakeLists.txt | 7 +++ doc/CMakeLists.txt | 5 ++ doc/buildsystem/CMakeLists.txt | 0 doc/doxygen/CMakeLists.txt | 0 dune-common.pc.cmake | 15 ++++++ dune/common/CMakeLists.txt | 71 +++++++++++++++++++++++++++++ dune/common/parallel/CMakeLists.txt | 12 +++++ dune/common/test/CMakeLists.txt | 3 ++ lib/CMakeLists.txt | 5 ++ m4/CMakeLists.txt | 46 +++++++++++++++++++ 12 files changed, 200 insertions(+), 3 deletions(-) create mode 100644 am/CMakeLists.txt create mode 100644 bin/CMakeLists.txt create mode 100644 doc/CMakeLists.txt create mode 100644 doc/buildsystem/CMakeLists.txt create mode 100644 doc/doxygen/CMakeLists.txt create mode 100644 dune-common.pc.cmake create mode 100644 lib/CMakeLists.txt create mode 100644 m4/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d52c8ad8..0a31295b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,9 +36,9 @@ endif() include(DuneStreams) dune_set_minimal_debug_level() -# include dune-common to include pathtest -include_directories("${CMAKE_SOURCE_DIR}") -link_directories("${CMAKE_SOURCE_DIR}") +# include dune-common and current directory to include pathtest +include_directories("${CMAKE_SOURCE_DIR}" ".") +link_directories("${CMAKE_SOURCE_DIR}/lib") # set required compiler flags for C++11 (former C++0x) find_package(CXX11Features) @@ -51,6 +51,7 @@ check_include_file_cxx("memory" HAVE_MEMORY) set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -DHAVE_MEMORY=${HAVE_MEMORY}") # search for packages +find_package(PkgConfig) find_package(MPI) if(MPI_FOUND) set(HAVE_MPI MPI_CXX_FOUND) @@ -78,9 +79,27 @@ add_definitions(-DHAVE_CONFIG_H) # add subdirectories to execute CMakeLists.txt there add_subdirectory("dune") +add_subdirectory("bin") +add_subdirectory("m4") +add_subdirectory("am") +add_subdirectory("doc") + set( CMAKE_FIND_LIBRARY_SUFFIXES ${_dune_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) +configure_file( + ${PROJECT_SOURCE_DIR}/${DUNE_MODULE_NAME}.pc.cmake + ${PROJECT_BINARY_DIR}/${DUNE_MODULE_NAME}.pc + @ONLY +) + +#install dune.module file +install(FILES dune.module DESTINATION lib/dunecontrol/${DUNE_MODULE_NAME}) +# install pkgconfig file +if(PKG_CONFIG_FOUND ) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DUNE_MODULE_NAME}.pc + DESTINATION lib/pkgconfig) +endif(PKG_CONFIG_FOUND) # set up CTest enable_testing() include(CTest) diff --git a/am/CMakeLists.txt b/am/CMakeLists.txt new file mode 100644 index 000000000..cd4277629 --- /dev/null +++ b/am/CMakeLists.txt @@ -0,0 +1,14 @@ +install(PROGRAMS + checklog + documentation + doxygen + global-rules + headercheck + inkscape.am + latex + no-check-without-lib + sourcescheck + top-rules + webstuff + DESTINATION share/dune-common/am +) diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt new file mode 100644 index 000000000..f8b9b8997 --- /dev/null +++ b/bin/CMakeLists.txt @@ -0,0 +1,7 @@ +install(PROGRAMS + dunedoxynize + duneproject + dunecontrol + mpi-config + dune-autogen + DESTINATION bin) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt new file mode 100644 index 000000000..b88dfa174 --- /dev/null +++ b/doc/CMakeLists.txt @@ -0,0 +1,5 @@ +add_subdirectory("doxygen") +add_subdirectory("buildsystem") +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/example.opts + DESTINATION share/doc/dune-common + ) diff --git a/doc/buildsystem/CMakeLists.txt b/doc/buildsystem/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb diff --git a/doc/doxygen/CMakeLists.txt b/doc/doxygen/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb diff --git a/dune-common.pc.cmake b/dune-common.pc.cmake new file mode 100644 index 000000000..c70db12a0 --- /dev/null +++ b/dune-common.pc.cmake @@ -0,0 +1,15 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@/bin +libdir=@CMAKE_INSTALL_PREFIX@/lib +includedir=@CMAKE_INSTALL_PREFIX@/include +CXX=@CMAKE_CXX_COMPILER@ +CC=@CMAKE_C_COMPILER@ +DEPENDENCIES=@REQUIRES@ + +Name: @DUNE_MODULE_NAME@ +Version: @DUNE_VERSION_STRING@ +Description: Dune (Distributed and Unified Numerics Environment) common module +URL: http://dune-project.org/ +Requires: ${DEPENDENCIES} +Libs: -L${libdir} -ldunecommon +Cflags: -I${includedir} diff --git a/dune/common/CMakeLists.txt b/dune/common/CMakeLists.txt index 27d54a1aa..6e7a247f5 100644 --- a/dune/common/CMakeLists.txt +++ b/dune/common/CMakeLists.txt @@ -1,6 +1,7 @@ add_subdirectory("parallel") add_subdirectory("test") +#build the library dunecommon add_library("dunecommon" exceptions.cc fmatrixev.cc @@ -9,4 +10,74 @@ add_library("dunecommon" parametertreeparser.cc path.cc stdstreams.cc) +# build the library in lib set_target_properties(dunecommon PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib") + +#install headers +install(FILES + alignment.hh + array.hh + arraylist.hh + bartonnackmanifcheck.hh + bigunsignedint.hh + binaryfunctions.hh + bitsetvector.hh + classname.hh + collectivecommunication.hh + debugstream.hh + deprecated.hh + densematrix.hh + densevector.hh + documentation.hh + dynmatrix.hh + dynvector.hh + enumset.hh + exceptions.hh + fassign.hh + finitestack.hh + float_cmp.cc + float_cmp.hh + fmatrix.hh + fmatrixev.hh + forloop.hh + ftraits.hh + function.hh + fvector.hh + gcd.hh + genericiterator.hh + geometrytype.hh + geometrytypeindex.hh + gmpfield.hh + indent.hh + interfaces.hh + ios_state.hh + iteratorfacades.hh + lcm.hh + lru.hh + math.hh + matvectraits.hh + misc.hh + mpicollectivecommunication.hh + mpiguard.hh + mpihelper.hh + mpitraits.hh + nullptr.hh + parametertree.hh + parametertreeparser.hh + path.hh + poolallocator.hh + precision.hh + propertymap.hh + reservedvector.hh + shared_ptr.hh + singleton.hh + sllist.hh + static_assert.hh + stdstreams.hh + timer.hh + tuples.hh + tupleutility.hh + typetraits.hh + unused.hh + version.hh +DESTINATION include/dune/common) diff --git a/dune/common/parallel/CMakeLists.txt b/dune/common/parallel/CMakeLists.txt index 0130ac18b..425398614 100644 --- a/dune/common/parallel/CMakeLists.txt +++ b/dune/common/parallel/CMakeLists.txt @@ -1 +1,13 @@ add_subdirectory("test") + +#install headers +install(FILES + communicator.hh + indexset.hh + indicessyncer.hh + interface.hh + localindex.hh + plocalindex.hh + remoteindices.hh + selection.hh + DESTINATION include/dune/common/parallel) diff --git a/dune/common/test/CMakeLists.txt b/dune/common/test/CMakeLists.txt index 417b35c20..85e9323fa 100644 --- a/dune/common/test/CMakeLists.txt +++ b/dune/common/test/CMakeLists.txt @@ -1,3 +1,6 @@ +# Install some test headers, because they get used by tests in other modules +install(FILES iteratortest.hh DESTINATION include/dune/common/test) + add_executable("arraylisttest" arraylisttest.cc) add_executable("arraytest" arraytest.cc) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 index 000000000..e97f4222e --- /dev/null +++ b/lib/CMakeLists.txt @@ -0,0 +1,5 @@ +if (DUNE_USE_ONLY_STATIC_LIBS) + install(TARGETS dunecommon ARCHIVE DESTINATION lib) +else(DUNE_USE_ONLY_STATIC_LIBS) + install(TARGETS dunecommon LIBRARY DESTINATION lib) +endif(DUNE_USE_ONLY_STATIC_LIB) diff --git a/m4/CMakeLists.txt b/m4/CMakeLists.txt new file mode 100644 index 000000000..3adb94527 --- /dev/null +++ b/m4/CMakeLists.txt @@ -0,0 +1,46 @@ +install(PROGRAMS + acx_blas.m4 + acx_lapack.m4 + acx_mpi.m4 + acx_pthread.m4 + ax_boost_base.m4 + ax_check_gl.m4 + ax_lang_compiler_ms.m4 + boost_fusion.m4 + cxx0x_compiler.m4 + cxx0x_rvaluereference.m4 + cxx0x_nullptr.m4 + cxx0x_static_assert.m4 + cxx0x_variadic.m4 + cxx0x_variadic_constructor_sfinae.m4 + dune.m4 + dune_all.m4 + dune_autobuild.m4 + dune_boost_base.m4 + dune_check_lib.m4 + dune_common.m4 + dune_compiler.m4 + dune_fortran.m4 + dune_deprecated.m4 + dune_deprecated_cppflags.m4 + dune_docu.m4 + dune_fieldvector_size_is_method.m4 + dune_linkcxx.m4 + dune_mpi.m4 + dune_streams.m4 + dune_tr1_headers.m4 + dune_unused.m4 + fortran_overwrite.m4 + gmp.m4 + hdf5.m4 + immdx_lib_metis.m4 + inkscape.m4 + libtoolcompat.m4 + make_shared.m4 + mpi-config.m4 + opengl.m4 + parmetis.m4 + shared_ptr.m4 + xdr.m4 + DESTINATION share/aclocal +) -- GitLab