cmake_minimum_required(VERSION 2.8) #list(INSERT # CMAKE_MODULE_PATH 0 ${PROJECT_SOURCE_DIR}/cmake) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) set(PROJECT_NAME xmrblocks) project(${PROJECT_NAME}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") # find boost find_package(Boost COMPONENTS system filesystem thread date_time chrono regex serialization program_options date_time REQUIRED) # set location of monero static libraries set(MONERO_LIBS_DIR /opt/bitmonero-dev/libs) # set location of moneroheaders set(MONERO_HEADERS_DIR /opt/bitmonero-dev/headers) # include monero headers include_directories( ${MONERO_HEADERS_DIR}/src ${MONERO_HEADERS_DIR}/external ${MONERO_HEADERS_DIR}/contrib/epee/include ${MONERO_HEADERS_DIR}/external/db_drivers/liblmdb) # get individual monero static libraries # that are needed in this project add_library(common STATIC IMPORTED) set_property(TARGET common PROPERTY IMPORTED_LOCATION ${MONERO_LIBS_DIR}/libcommon.a) add_library(blocks STATIC IMPORTED) set_property(TARGET blocks PROPERTY IMPORTED_LOCATION ${MONERO_LIBS_DIR}/libblocks.a) add_library(crypto STATIC IMPORTED) set_property(TARGET crypto PROPERTY IMPORTED_LOCATION ${MONERO_LIBS_DIR}/libcrypto.a) add_library(cryptonote_core STATIC IMPORTED) set_property(TARGET cryptonote_core PROPERTY IMPORTED_LOCATION ${MONERO_LIBS_DIR}/libcryptonote_core.a) add_library(blockchain_db STATIC IMPORTED) set_property(TARGET blockchain_db PROPERTY IMPORTED_LOCATION ${MONERO_LIBS_DIR}/libblockchain_db.a) add_library(lmdb STATIC IMPORTED) set_property(TARGET lmdb PROPERTY IMPORTED_LOCATION ${MONERO_LIBS_DIR}/liblmdb.a) # include boost headers include_directories(${Boost_INCLUDE_DIRS}) include_directories("ext/mstch/include") # add ext/ subfolder add_subdirectory(ext/) # add src/ subfolder add_subdirectory(src/) set(SOURCE_FILES main.cpp) #ADD_CUSTOM_TARGET(driver DEPENDS src/templates/index.html) add_executable(${PROJECT_NAME} ${SOURCE_FILES}) #add_custom_command(TARGET template_folder POST_BUILD # COMMAND ${CMAKE_COMMAND} -E copy_directory # "${CMAKE_CURRENT_SOURCE_DIR}/src/templates" "${CMAKE_CURRENT_BINARY_DIR}") # #add_custom_target(template_folder # ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/templates") # #ADD_DEPENDENCIES(${PROJECT_NAME} # template_folder) #file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/src/templates" # DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") # #include(copy_files) #copy_files(${CMAKE_CURRENT_SOURCE_DIR}/src/templates/ *.html ${CMAKE_CURRENT_BINARY_DIR}) # macro(configure_files srcDir destDir) message(STATUS "Configuring directory ${destDir}") make_directory(${destDir}) file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*) foreach(templateFile ${templateFiles}) set(srcTemplatePath ${srcDir}/${templateFile}) if(NOT IS_DIRECTORY ${srcTemplatePath}) message(STATUS "Configuring file ${templateFile}") configure_file( ${srcTemplatePath} ${destDir}/${templateFile} @ONLY) endif(NOT IS_DIRECTORY ${srcTemplatePath}) endforeach(templateFile) endmacro(configure_files) configure_files(${CMAKE_CURRENT_SOURCE_DIR}/src/templates ${CMAKE_CURRENT_BINARY_DIR}/templates) configure_files(${CMAKE_CURRENT_SOURCE_DIR}/src/templates/css ${CMAKE_CURRENT_BINARY_DIR}/templates/css) #macro(copy_files GLOBPAT DESTINATION) # # message(STATUS "Configuring directory ${DESTINATION}") # # file(GLOB COPY_FILES # RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} # ${GLOBPAT}) # add_custom_target(copy ALL # COMMENT "Copying files: ${GLOBPAT}") # # foreach(FILENAME ${COPY_FILES}) # set(SRC "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}") # set(DST "${DESTINATION}/${FILENAME}") # # add_custom_command( # TARGET copy # COMMAND ${CMAKE_COMMAND} -E copy ${SRC} ${DST} # ) # endforeach(FILENAME) #endmacro(copy_files) # #copy_files(${CMAKE_CURRENT_SOURCE_DIR}/src/templates ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(${PROJECT_NAME} myxrm myext mstch cryptonote_core blockchain_db crypto blocks common lmdb ${Boost_LIBRARIES} pthread unbound)