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