# ReactMiCP # ============= # var to store the files set( reactmicp_srcs "" CACHE INTERNAL "reactmicp files" FORCE) set( reactmicp_headers "" CACHE INTERNAL "reactmicp headers" FORCE ) # macro to add to vars macro(add_to_reactmicp_srcs_list LIST_NAME) set(tmp "") foreach (src ${${LIST_NAME}}) list(APPEND tmp ${CMAKE_CURRENT_SOURCE_DIR}/${src}) endforeach(src) set(reactmicp_srcs "${reactmicp_srcs};${tmp}" CACHE INTERNAL "reactmicp files" FORCE) endmacro(add_to_reactmicp_srcs_list) macro(add_to_reactmicp_headers_list LIST_NAME) set( tmp "") foreach(header ${${LIST_NAME}}) LIST(APPEND tmp ${CMAKE_CURRENT_SOURCE_DIR}/${header}) endforeach(header) set(reactmicp_headers "${reactmicp_headers};${tmp}" CACHE INTERNAL "reactmicp headers" FORCE) endmacro(add_to_reactmicp_headers_list) # gather files set(reactmicp_main_headers reactmicp_core.hpp reactmicp.hpp reactmicp_saturated.hpp reactmicp_unsaturated.hpp ) add_to_reactmicp_headers_list(reactmicp_main_headers) add_subdirectory( equilibrium_curve ) add_subdirectory( io ) add_subdirectory( solver ) add_subdirectory( systems ) # Library # ======== set_visibility_flag(${reactmicp_srcs}) set_pgo_flag(${reactmicp_srcs}) add_library(objreactmicp OBJECT ${reactmicp_srcs} ${reactmicp_headers} ) set_property(TARGET objreactmicp PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(reactmicp SHARED $) target_link_libraries(reactmicp dfpm) install(TARGETS reactmicp LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR} ) # static libraries # ---------------- if(SPECMICP_BUILD_STATIC) add_library(reactmicp_static STATIC $) install(TARGETS reactmicp_static ARCHIVE DESTINATION ${STATIC_LIBRARY_INSTALL_DIR} ) else() add_library(reactmicp_static EXCLUDE_FROM_ALL STATIC $) endif() set_target_properties(reactmicp_static PROPERTIES OUTPUT_NAME reactmicp) target_link_libraries(reactmicp_static dfpm_static specmicp_static specmicp_database_static specmicp_common_static )