# library files FILE(GLOB RiscVHeaders *.h) set(LIB_HEADERS ${RiscVHeaders} ) set(LIB_SOURCES iss/minrv_ima.cpp internal/vm_minrv_ima.cpp ) set(APP_HEADERS ) set(APP_SOURCES main.cpp) # Define two variables in order not to repeat ourselves. set(LIBRARY_NAME riscv) # Define the library add_library(${LIBRARY_NAME} ${LIB_SOURCES}) set_target_properties(${LIBRARY_NAME} PROPERTIES VERSION ${VERSION} # ${VERSION} was defined in the main CMakeLists. FRAMEWORK FALSE PUBLIC_HEADER "${LIB_HEADERS}" # specify the public headers ) # This is a make target, so you can do a "make riscv-sc" set(APPLICATION_NAME riscv-sc) add_executable(${APPLICATION_NAME} ${APP_SOURCES}) # Links the target exe against the libraries target_link_libraries(${APPLICATION_NAME} ${LIBRARY_NAME}) target_link_libraries(${APPLICATION_NAME} dbt-core) target_link_libraries(${APPLICATION_NAME} sc-components) target_link_libraries(${APPLICATION_NAME} external) target_link_libraries(${APPLICATION_NAME} ${llvm_libs}) #target_link_libraries(${APPLICATION_NAME} ${SystemC_LIBRARIES} ) #if(SCV_FOUND) #target_link_libraries (${APPLICATION_NAME} ${SCV_LIBRARIES}) #endif(SCV_FOUND) target_link_libraries(${APPLICATION_NAME} ${Boost_LIBRARIES} ) # Says how and where to install software # Targets: # * /lib/ # * header location after install: /include//*.h # * headers can be included by C++ code `#/Bar.hpp>` install(TARGETS ${LIBRARY_NAME} ${APPLICATION_NAME} EXPORT ${PROJECT_NAME}Targets # for downstream dependencies ARCHIVE DESTINATION lib COMPONENT libs # static lib RUNTIME DESTINATION bin COMPONENT libs # binaries LIBRARY DESTINATION lib COMPONENT libs # shared lib FRAMEWORK DESTINATION bin COMPONENT libs # for mac PUBLIC_HEADER DESTINATION incl/${PROJECT_NAME} COMPONENT devel # headers for mac (note the different component -> different package) INCLUDES DESTINATION incl # headers )