# Integrate SYSTEMC as external project. # # External projects are not available during cmake configuration step, but only # during the build step. Therefore we must maintain some targets manually, # representing the parts of the external project we want to use (eg library). include(ExternalProject) set(SYSTEMC_HOME ${CMAKE_BINARY_DIR}/deps/systemc) ExternalProject_Add( systemc_external GIT_REPOSITORY https://github.com/accellera-official/systemc GIT_TAG master GIT_SHALLOW ON GIT_PROGRESS ON CMAKE_ARGS # Fwd cmake outer cmake args. -DCMAKE_INSTALL_PREFIX=${SYSTEMC_HOME} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} # SystemC specific args. -DBUILD_SHARED_LIBS=OFF -DENABLE_ASSERTIONS=ON INSTALL_BYPRODUCTS ${CMAKE_BINARY_DIR}/deps/systemc/lib/libsystemc.a ) # Define pseudo target (import lib) for usage in cmake. add_library(SystemC::systemc STATIC IMPORTED GLOBAL) add_dependencies(SystemC::systemc systemc_external) # Create include dir such that we can set include dir property below. file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/deps/systemc/include) # Set library properties. set_target_properties(SystemC::systemc PROPERTIES IMPORTED_LOCATION ${SYSTEMC_HOME}/lib/libsystemc.a INTERFACE_INCLUDE_DIRECTORIES ${SYSTEMC_HOME}/include )