mirror of https://gitlab.com/QEF/q-e.git
Make qe_install_targets variadic
This commit is contained in:
parent
135a0832de
commit
ce7c15c3b0
|
@ -131,8 +131,9 @@ function(qe_add_library LIB)
|
|||
endif()
|
||||
endfunction(qe_add_library)
|
||||
|
||||
function(qe_install_target TGT)
|
||||
install(TARGETS ${TGT}
|
||||
function(qe_install_targets TGT)
|
||||
set(targets ${TGT} ${ARGN})
|
||||
install(TARGETS ${targets}
|
||||
EXPORT qeTargets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
|
@ -142,17 +143,19 @@ function(qe_install_target TGT)
|
|||
# error, let's skip the following section for interface
|
||||
# targets. See here for details:
|
||||
# https://gitlab.kitware.com/cmake/cmake/issues/17640
|
||||
get_target_property(tgt_type ${TGT} TYPE)
|
||||
if(NOT ${tgt_type} STREQUAL "INTERFACE_LIBRARY")
|
||||
# If the target generates Fortran modules, make sure
|
||||
# to install them as well to a proper location
|
||||
get_target_property(tgt_module_dir ${TGT} Fortran_MODULE_DIRECTORY)
|
||||
if(tgt_module_dir)
|
||||
install(DIRECTORY ${tgt_module_dir}/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qe)
|
||||
endif()
|
||||
endif()
|
||||
endfunction(qe_install_target)
|
||||
foreach(tgt IN LISTS targets)
|
||||
get_target_property(tgt_type ${tgt} TYPE)
|
||||
if(NOT ${tgt_type} STREQUAL "INTERFACE_LIBRARY")
|
||||
# If the target generates Fortran modules, make sure
|
||||
# to install them as well to a proper location
|
||||
get_target_property(tgt_module_dir ${tgt} Fortran_MODULE_DIRECTORY)
|
||||
if(tgt_module_dir)
|
||||
install(DIRECTORY ${tgt_module_dir}/
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qe)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction(qe_install_targets)
|
||||
|
||||
###########################################################
|
||||
# External dependencies
|
||||
|
@ -219,11 +222,13 @@ add_subdirectory(CPV)
|
|||
|
||||
# Install all internal interface targets to allow
|
||||
# proper targets export
|
||||
qe_install_target(qe_definitions)
|
||||
qe_install_target(qe_mpi_fortran)
|
||||
qe_install_target(qe_mpi_c)
|
||||
# TODO check that everything is in good shape
|
||||
qe_install_target(qe_fox)
|
||||
qe_install_targets(
|
||||
qe_definitions
|
||||
qe_mpi_fortran
|
||||
qe_mpi_c
|
||||
# TODO check that everything is in good shape
|
||||
qe_fox
|
||||
)
|
||||
|
||||
install(EXPORT qeTargets
|
||||
FILE qeTargets.cmake
|
||||
|
|
|
@ -116,7 +116,6 @@ target_link_libraries(qe_cpv
|
|||
QE::Modules
|
||||
QE::FFTX
|
||||
QE::MPI_Fortran)
|
||||
qe_install_target(qe_cpv)
|
||||
|
||||
###########################################################
|
||||
# cp.x
|
||||
|
@ -129,7 +128,6 @@ set_target_properties(qe_cpv_exe PROPERTIES OUTPUT_NAME cp.x)
|
|||
target_link_libraries(qe_cpv_exe
|
||||
PRIVATE
|
||||
QE::CPV)
|
||||
qe_install_target(qe_cpv_exe)
|
||||
|
||||
###########################################################
|
||||
# manycp.x
|
||||
|
@ -142,4 +140,10 @@ set_target_properties(qe_cpv_manycp_exe PROPERTIES OUTPUT_NAME manycp.x)
|
|||
target_link_libraries(qe_cpv_manycp_exe
|
||||
PRIVATE
|
||||
QE::CPV)
|
||||
qe_install_target(qe_cpv_manycp_exe)
|
||||
|
||||
###########################################################
|
||||
|
||||
qe_install_targets(
|
||||
qe_cpv
|
||||
qe_cpv_exe
|
||||
qe_cpv_manycp_exe)
|
|
@ -41,7 +41,7 @@ add_library(QE::FFTX ALIAS qe_fftx)
|
|||
target_link_libraries(qe_fftx
|
||||
PUBLIC
|
||||
QE::LAPACK)
|
||||
qe_install_target(qe_fftx)
|
||||
qe_install_targets(qe_fftx)
|
||||
|
||||
###########################################################
|
||||
# Tests
|
||||
|
|
|
@ -23,4 +23,4 @@ target_link_libraries(qe_solvers
|
|||
QE::LAX
|
||||
QE::UTILX
|
||||
QE::MPI_Fortran)
|
||||
qe_install_target(qe_solvers)
|
||||
qe_install_targets(qe_solvers)
|
||||
|
|
|
@ -24,7 +24,7 @@ target_link_libraries(qe_lax
|
|||
QE::MPI_Fortran
|
||||
QE::LAPACK
|
||||
QE::UTILX)
|
||||
qe_install_target(qe_lax)
|
||||
qe_install_targets(qe_lax)
|
||||
|
||||
###########################################################
|
||||
# Tests
|
||||
|
|
|
@ -174,4 +174,4 @@ target_link_libraries(qe_modules
|
|||
QE::FOX
|
||||
QE::CLIB # this is needed only by wrappers.f90
|
||||
QE::MPI_Fortran)
|
||||
qe_install_target(qe_modules)
|
||||
qe_install_targets(qe_modules)
|
||||
|
|
|
@ -247,7 +247,6 @@ target_link_libraries(qe_pw
|
|||
QE::FFTX
|
||||
QE::DFTD3
|
||||
QE::MPI_Fortran)
|
||||
qe_install_target(qe_pw)
|
||||
|
||||
###########################################################
|
||||
# pw.x
|
||||
|
@ -261,4 +260,9 @@ add_executable(QE::PW_EXE ALIAS qe_pw_exe)
|
|||
target_link_libraries(qe_pw_exe
|
||||
PRIVATE
|
||||
QE::PW)
|
||||
qe_install_target(qe_pw_exe)
|
||||
|
||||
###########################################################
|
||||
|
||||
qe_install_targets(
|
||||
qe_pw
|
||||
qe_pw_exe)
|
|
@ -26,4 +26,4 @@ add_library(QE::UTILX ALIAS qe_utilx)
|
|||
target_link_libraries(qe_utilx
|
||||
PUBLIC
|
||||
QE::MPI_Fortran)
|
||||
qe_install_target(qe_utilx)
|
||||
qe_install_targets(qe_utilx)
|
||||
|
|
|
@ -16,4 +16,4 @@ set(sources
|
|||
|
||||
qe_add_library(qe_clib ${sources})
|
||||
add_library(QE::CLIB ALIAS qe_clib)
|
||||
qe_install_target(qe_clib)
|
||||
qe_install_targets(qe_clib)
|
|
@ -15,5 +15,5 @@ target_link_libraries(qe_dftd3
|
|||
PUBLIC
|
||||
QE::UTILX
|
||||
QE::Modules)
|
||||
qe_install_target(qe_dftd3)
|
||||
qe_install_targets(qe_dftd3)
|
||||
|
||||
|
|
|
@ -61,9 +61,7 @@ else(FoX_FOUND)
|
|||
# TODO fix FoX module dir
|
||||
# INTERFACE
|
||||
# $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/qe>)
|
||||
foreach(tgt IN LISTS fox_targets)
|
||||
qe_install_target(${tgt})
|
||||
endforeach()
|
||||
qe_install_targets(${fox_targets})
|
||||
else(QE_ENABLE_VENDOR_DEPS)
|
||||
# No dep has been found via find_package,
|
||||
# call it again with REQUIRED to make it fail
|
||||
|
|
Loading…
Reference in New Issue