cmake_minimum_required(VERSION 2.8) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../cmake) # main (top) cmake dir set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) # project specific cmake dir set(CMAKE_CXX_STANDARD 14) # tODO move up to a general cmake config for all sub projects ? # CMake useful variables set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") # Set the name of your project here project("riscv") # Set the version number of your project here (format is MAJOR.MINOR.PATCHLEVEL - e.g. 1.0.0) set(VERSION_MAJOR "0") set(VERSION_MINOR "0") set(VERSION_PATCH "1") set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) include(Common) ## Git (and its revision) find_package(Git QUIET) # if we don't find git or FindGit.cmake is not on the system we ignore it. ## The Git module will trigger a reconfiguration for each pull that will bring a new revision on the local repository set (VCS_REVISION "-1") if(GIT_FOUND) include(GetGitRevisionDescription) get_git_head_revision(GIT_REFSPEC GIT_SHA1) message(STATUS "GIT branch ${GIT_REFSPEC}") message(STATUS "GIT revision ${GIT_SHA1}") set (VCS_REVISION ${GIT_SHA1}) endif() # This line finds the boost lib and headers. set(Boost_NO_BOOST_CMAKE ON) # Don't do a find_package in config mode before searching for a regular boost install. find_package(Boost COMPONENTS program_options system thread REQUIRED) find_package(LLVM REQUIRED CONFIG) message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") llvm_map_components_to_libnames(llvm_libs support core mcjit x86codegen x86asmparser) find_package(SystemC) if(SystemC_FOUND) add_definitions(-DWITH_SYSTEMC) include_directories(${SystemC_INCLUDE_DIRS}) link_directories(${SystemC_LIBRARY_DIRS}) else(SystemC_FOUND) message( FATAL_ERROR "SystemC library not found." ) endif(SystemC_FOUND) if(SCV_FOUND) add_definitions(-DWITH_SCV) link_directories(${SCV_LIBRARY_DIRS}) endif(SCV_FOUND) # This sets the include directory for the reference project. This is the -I flag in gcc. include_directories( ${PROJECT_SOURCE_DIR}/incl ${LLVM_INCLUDE_DIRS} ) add_dependent_subproject(dbt-core) add_dependent_subproject(sc-components) add_dependent_header(util) include_directories( ${PROJECT_SOURCE_DIR}/incl ${PROJECT_SOURCE_DIR}/../external/elfio ${PROJECT_SOURCE_DIR}/../external/libGIS ${PROJECT_SOURCE_DIR}/../external/easyloggingpp/src ${Boost_INCLUDE_DIRS} ) # Mac needed variables (adapt for your needs - http://www.cmake.org/Wiki/CMake_RPATH_handling#Mac_OS_X_and_the_RPATH) set(CMAKE_MACOSX_RPATH ON) set(CMAKE_SKIP_BUILD_RPATH FALSE) set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) add_subdirectory(src) # # SYSTEM PACKAGING (RPM, TGZ, ...) # _____________________________________________________________________________ #include(CPackConfig) # # CMAKE PACKAGING (for other CMake projects to use this one easily) # _____________________________________________________________________________ #include(PackageConfigurator)