# DFPM # ======== # Finite element solver set(dfpm_srcs "" CACHE INTERNAL "dfpm sources files" FORCE) set(dfpm_headers "" CACHE INTERNAL "dfpm headers" FORCE ) # macro to add to vars macro(add_to_dfpm_srcs_list LIST_NAME) set(tmp "") foreach (src ${${LIST_NAME}}) list(APPEND tmp ${CMAKE_CURRENT_SOURCE_DIR}/${src}) endforeach(src) set(dfpm_srcs "${dfpm_srcs};${tmp}" CACHE INTERNAL "dfpm files" FORCE) endmacro(add_to_dfpm_srcs_list) macro(add_to_dfpm_headers_list LIST_NAME) set( tmp "") foreach(header ${${LIST_NAME}}) LIST(APPEND tmp ${CMAKE_CURRENT_SOURCE_DIR}/${header}) endforeach(header) set(dfpm_headers "${dfpm_headers};${tmp}" CACHE INTERNAL "dfpm headers" FORCE) endmacro(add_to_dfpm_headers_list) # set( dfpm_main_headers mesh.hpp types.hpp ) add_to_dfpm_headers_list(dfpm_main_headers) install(FILES ${dfpm_main_headers} DESTINATION ${INCLUDE_INSTALL_DIR}/dfpm ) add_subdirectory(1dtransport) add_subdirectory(io) add_subdirectory(meshes) add_subdirectory(solver) # library # ======= set_visibility_flag(${dfpm_srcs}) set_pgo_flag(${dfpm_srcs}) add_library(objdfpm OBJECT ${dfpm_srcs} ${dfpm_headers} ) set_property(TARGET objdfpm PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(dfpm SHARED $) target_link_libraries(dfpm specmicp_common) install(TARGETS dfpm LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR} ) # static libraries # ---------------- if(SPECMICP_BUILD_STATIC) add_library(dfpm_static STATIC $) install(TARGETS dfpm_static ARCHIVE DESTINATION ${STATIC_LIBRARY_INSTALL_DIR} ) else() add_library(dfpm_static EXCLUDE_FROM_ALL STATIC $) endif() set_target_properties(dfpm_static PROPERTIES OUTPUT_NAME dfpm) target_link_libraries(dfpm_static specmicp_common_static)