From 1bb8b79f675deb5f7aed10b47ded0f4567b66a5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franck=20P=C3=A9rignon?= <franck.perignon@imag.fr> Date: Mon, 27 Oct 2014 15:54:28 +0100 Subject: [PATCH] Clean cmake config. Fix (at least ...) libparmes find bug --- HySoP/CMake/CMakeListsForTests.cmake | 26 ---------- HySoP/CMake/FindPythonLibs.cmake | 0 HySoP/CMake/FindPythonModule.cmake | 0 HySoP/CMake/InstallPackage.cmake | 65 ------------------------ HySoP/CMake/TestFortranAcceptsFlag.cmake | 38 -------------- HySoP/setup.py.in | 3 +- HySoP/src/CMakeLists.txt | 36 +------------ 7 files changed, 4 insertions(+), 164 deletions(-) delete mode 100644 HySoP/CMake/CMakeListsForTests.cmake mode change 100755 => 100644 HySoP/CMake/FindPythonLibs.cmake mode change 100755 => 100644 HySoP/CMake/FindPythonModule.cmake delete mode 100644 HySoP/CMake/InstallPackage.cmake delete mode 100644 HySoP/CMake/TestFortranAcceptsFlag.cmake diff --git a/HySoP/CMake/CMakeListsForTests.cmake b/HySoP/CMake/CMakeListsForTests.cmake deleted file mode 100644 index a149f3ae3..000000000 --- a/HySoP/CMake/CMakeListsForTests.cmake +++ /dev/null @@ -1,26 +0,0 @@ -# -*- cmake -*- -# This is the test cmake configuration -# built from @CMAKE_SOURCE_DIR@/cmake/CMakeListsForTests.cmake.in - -# scan the list of test executables -foreach(_EXE ${_EXE_LIST_${_CURRENT_TEST_DIRECTORY}}) - - message(STATUS "Adding test suite ${_CURRENT_TEST_DIRECTORY}/${_EXE}") - - # Create an executable for the current test - add_executable(${_EXE} ${${_EXE}_FSOURCES}) - - # Add a dependency between current test and the main library target - add_dependencies(${_EXE} ${PROJECT_LIBRARY_NAME}) - # link current target test with the same lib as for main project lib - target_link_libraries(${_EXE} ${PROJECT_LIBRARY_NAME}) - target_link_libraries(${_EXE} ${LIBS}) - - # add test for ctest - add_test(${_EXE} ${_EXE}) - - set_tests_properties(${_EXE} PROPERTIES FAIL_REGULAR_EXPRESSION "FAILURE;Exception;failed;ERROR") - message("ADD MPI TESTS ...") - add_test(NAME mpi_${_EXE} COMMAND mpirun -np 8 ${_EXE}) - -endforeach(_EXE ${_EXE_LIST_${_CURRENT_TEST_DIRECTORY}}) diff --git a/HySoP/CMake/FindPythonLibs.cmake b/HySoP/CMake/FindPythonLibs.cmake old mode 100755 new mode 100644 diff --git a/HySoP/CMake/FindPythonModule.cmake b/HySoP/CMake/FindPythonModule.cmake old mode 100755 new mode 100644 diff --git a/HySoP/CMake/InstallPackage.cmake b/HySoP/CMake/InstallPackage.cmake deleted file mode 100644 index d725cac91..000000000 --- a/HySoP/CMake/InstallPackage.cmake +++ /dev/null @@ -1,65 +0,0 @@ -#=========================================================== -# Macro to install parmes package -# -# F. Pérignon, LJK-CNRS, april 2011 -# -#=========================================================== - -# Args : -# - package name -# - library name -# - headers list (optional) - -function(install_package) - - if(ARGV2) - set(_HEADERS ${ARGV2}) - endif() - - # Offer the user the choice of overriding the installation directories - set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries") - set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables") - set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files") - set(INSTALL_DATA_DIR share CACHE PATH "Installation directory for data files") - - # Make relative paths absolute (needed later on) - # Warning : this depends on the current value of CMAKE_INSTALL_PREFIX ! - foreach(p LIB BIN INCLUDE DATA) - set(var INSTALL_${p}_DIR) - if(NOT IS_ABSOLUTE "${${var}}") - set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") - endif() - endforeach() - - # The libraries - install(TARGETS ${ARGV1} - EXPORT ${ARGV0}LibraryDepends - ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" # static libs - LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT shlib # shared libs - PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT dev - ) - - # The headers and modules - if(_HEADERS) - install(FILES ${_HEADERS} DESTINATION "${INSTALL_INCLUDE_DIR}") - endif() - install(DIRECTORY ${CMAKE_BINARY_DIR}/Modules DESTINATION "${INSTALL_INCLUDE_DIR}") - export(TARGETS ${ARGV1} FILE "${PROJECT_BINARY_DIR}/InstallFiles/${ARGV0}LibraryDepends.cmake") - - # Install the export set for use with the install-tree - install(EXPORT ${ARGV0}LibraryDepends DESTINATION - "${INSTALL_DATA_DIR}/CMake" COMPONENT dev) - set(${ARGV0}_INCLUDE_DIRS "${INSTALL_INCLUDE_DIR}") - set(${ARGV0}_LIB_DIR "${INSTALL_LIB_DIR}") - set(${ARGV0}_CMAKE_DIR "${INSTALL_DATA_DIR}/CMake") - - configure_file(${CMAKE_SOURCE_DIR}/${ARGV0}Config.cmake.in - "${PROJECT_BINARY_DIR}/InstallFiles/${ARGV0}Config.cmake") - configure_file(${CMAKE_SOURCE_DIR}/${ARGV0}ConfigVersion.cmake.in - "${PROJECT_BINARY_DIR}/InstallFiles/${ARGV0}ConfigVersion.cmake" @ONLY) - install(FILES - "${PROJECT_BINARY_DIR}/InstallFiles/${ARGV0}Config.cmake" - "${PROJECT_BINARY_DIR}/InstallFiles/${ARGV0}ConfigVersion.cmake" - DESTINATION "${${ARGV0}_CMAKE_DIR}" COMPONENT dev) - -endfunction() diff --git a/HySoP/CMake/TestFortranAcceptsFlag.cmake b/HySoP/CMake/TestFortranAcceptsFlag.cmake deleted file mode 100644 index 73f3b1a1d..000000000 --- a/HySoP/CMake/TestFortranAcceptsFlag.cmake +++ /dev/null @@ -1,38 +0,0 @@ -# - Test Fortran compiler for a flag -# Check if the Fortran compiler accepts a flag -# -# Macro CHECK_Fortran_ACCEPTS_FLAG(FLAGS VARIABLE) - -# checks if the function exists -# FLAGS - the flags to try -# VARIABLE - variable to store the result -# -# F. Pérignon - LJK/CNRS - March 2011 -# From Kitware TestCXXAcceptsFlag.cmake -# - -MACRO(CHECK_Fortran_ACCEPTS_FLAG FLAGS VARIABLE) - IF(NOT DEFINED ${VARIABLE}) - MESSAGE(STATUS "Checking to see if Fortran compiler accepts flag ${FLAGS}") - FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/Dummy.f - "program TESTFortran - implicit none - print *, 'Hello' - end program ") - TRY_COMPILE(${VARIABLE} - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/Dummy.f - CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${FLAGS} - OUTPUT_VARIABLE OUTPUT) - IF(${VARIABLE}) - MESSAGE(STATUS "Checking to see if Fortran compiler accepts flag ${FLAGS} - yes") - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Determining if the Fortran compiler accepts the flag ${FLAGS} passed with " - "the following output:\n${OUTPUT}\n\n") - ELSE(${VARIABLE}) - MESSAGE(STATUS "Checking to see if Fortran compiler accepts flag ${FLAGS} - no") - FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Determining if the Fortran compiler accepts the flag ${FLAGS} failed with " - "the following output:\n${OUTPUT}\n\n") - ENDIF(${VARIABLE}) - ENDIF(NOT DEFINED ${VARIABLE}) -ENDMACRO(CHECK_Fortran_ACCEPTS_FLAG) diff --git a/HySoP/setup.py.in b/HySoP/setup.py.in index cdae7a312..dec8ebdc1 100644 --- a/HySoP/setup.py.in +++ b/HySoP/setup.py.in @@ -95,7 +95,8 @@ if enable_fortran is "ON": include_dirs=inc_dir, library_dirs=parmes_libdir, libraries=parmeslib, - define_macros=options) + define_macros=options + ) ext_modules.append(parpyModule) else: packages.append('parmepy.fakef2py') diff --git a/HySoP/src/CMakeLists.txt b/HySoP/src/CMakeLists.txt index 560d0c992..d7a6c935e 100644 --- a/HySoP/src/CMakeLists.txt +++ b/HySoP/src/CMakeLists.txt @@ -140,12 +140,8 @@ include_directories(${CMAKE_Fortran_MODULE_DIRECTORY}) # MACRO_NAMESPACE "F2C_" # SYMBOL_NAMESPACE "F2C_") -if(BUILD_SHARED_LIBS) # shared library - add_library(${PARMES_LIBRARY_NAME} SHARED ${${PARMES_LIBRARY_NAME}_SRC}) -else() # static library - add_library(${PARMES_LIBRARY_NAME} STATIC ${${PARMES_LIBRARY_NAME}_SRC}) -endif() -# Libs to link with PARMES__LIBRARY_NAME +# static library +add_library(${PARMES_LIBRARY_NAME} STATIC ${${PARMES_LIBRARY_NAME}_SRC}) target_link_libraries(${PARMES_LIBRARY_NAME} ${LIBS}) # ============= Create an executable linked with libparmes ============= @@ -186,34 +182,6 @@ if(WITH_FFTW) target_link_libraries(${EXE_NAME} ${LIBS}) endif() -# The library, the headers and mod files, the cmake generated files -# will be install in CMAKE_INSTALL_PREFIX/lib include and share -include(InstallPackage) -if(${PARMES_LIBRARY_NAME}_HDRS}) - install_package(${PACKAGE_NAME} ${PARMES_LIBRARY_NAME} ${${PARMES_LIBRARY_NAME}_HDRS}) -else() - install_package(${PACKAGE_NAME} ${PARMES_LIBRARY_NAME}) -endif() - - -# # do not skip the full RPATH for the build tree -# set(CMAKE_SKIP_BUILD_RPATH FALSE) -# # when building, don't use the install RPATH already -# # (but later on when installing) -# set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) -# # the RPATH to be used when installing -# set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") -# #set(CMAKE_INSTALL_RPATH "") -# # add the automatically determined parts of the RPATH -# # which point to directories outside the build tree to the install RPATH -# SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - -# the RPATH to be used when installing, but only if it's not a system directory -# LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) -# IF("${isSystemDir}" STREQUAL "-1") -# SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") -# ENDIF("${isSystemDir}" STREQUAL "-1") - # ============== Add tests ============== if(WITH_TESTS) # message(STATUS "Enable testing ...") -- GitLab