Skip to content
Snippets Groups Projects
Commit 1bb8b79f authored by Franck Pérignon's avatar Franck Pérignon
Browse files

Clean cmake config. Fix (at least ...) libparmes find bug

parent b020f033
No related branches found
No related tags found
No related merge requests found
# -*- 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}})
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
#===========================================================
# 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()
# - 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)
......@@ -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')
......
......@@ -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 ...")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment