github.com/aergoio/aergo@v1.3.1/libtool/CMakeLists.txt (about)

     1  set(LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR})
     2  
     3  set(LUAJIT_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/luajit/src)
     4  set(LUAJIT_BUILD_DIR ${LUAJIT_SRC_DIR}/..)
     5  
     6  if(NOT EXISTS ${LUAJIT_SRC_DIR})
     7      execute_process(COMMAND git submodule update --init --force)
     8  endif()
     9  
    10  set(LUAJIT_GIT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/luajit/.git)
    11  
    12  if(CMAKE_BUILD_TYPE MATCHES "Debug")
    13  	set(CFLAGS "CFLAGS=\"-DLJ_ENABLE_DEBUG\"")
    14  endif()
    15  
    16  set(LMDB_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/lmdb)
    17  set(LMDB_BUILD_DIR ${LMDB_SRC_DIR}/libraries/liblmdb)
    18  
    19  if(NOT EXISTS ${LMDB_SRC_DIR})
    20      execute_process(COMMAND git clone https://github.com/lmdb/lmdb.git ${LMDB_SRC_DIR})
    21  endif()
    22  
    23  set(GMP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/gmp-6.1.2)
    24  set(GMP_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/src/gmp-6.1.2)
    25  
    26  include(ExternalProject)
    27  
    28  ExternalProject_Add(libgmp
    29     SOURCE_DIR ${GMP_SRC_DIR}
    30     BINARY_DIR ${GMP_BUILD_DIR}
    31     TMP_DIR ${GMP_BUILD_DIR}
    32     STAMP_DIR ${GMP_BUILD_DIR}
    33     CONFIGURE_COMMAND ${GMP_SRC_DIR}/configure --prefix=${LIB_DIR} --disable-static --enable-shared > /dev/null
    34     PREFIX ${GMP_SRC_DIR}
    35     BUILD_COMMAND $(MAKE) all install > make.log
    36     BUILD_ALWAYS 1)
    37  
    38  add_custom_target(libtool DEPENDS libluajit liblmdb libgmp)
    39  
    40  add_custom_target(libluajit $(MAKE) PREFIX=${LIB_DIR} ${CFLAGS} all install
    41  	WORKING_DIRECTORY ${LUAJIT_BUILD_DIR})
    42  add_custom_target(liblmdb $(MAKE) prefix=${LIB_DIR} all install
    43  	WORKING_DIRECTORY ${LMDB_BUILD_DIR})
    44  
    45  add_custom_target(libtool-clean 
    46      COMMAND rm -rf ${LIB_DIR}/lib/*
    47      COMMAND rm -rf ${LIB_DIR}/include/*
    48      COMMAND rm -rf ${LIB_DIR}/bin/*
    49      COMMAND rm -rf ${LIB_DIR}/share/*
    50      DEPENDS libluajit-clean liblmdb-clean libgmp-clean)
    51  
    52  add_custom_target(libluajit-clean $(MAKE) clean WORKING_DIRECTORY ${LUAJIT_BUILD_DIR})
    53  add_custom_target(liblmdb-clean $(MAKE) clean WORKING_DIRECTORY ${LMDB_BUILD_DIR})
    54  add_custom_target(libgmp-clean $(MAKE) clean WORKING_DIRECTORY ${GMP_BUILD_DIR})