You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
229 lines
5.2 KiB
229 lines
5.2 KiB
cmake_minimum_required (VERSION 3.13)
|
|
project (amule)
|
|
set (MIN_BOOST_VERSION 1.47)
|
|
set (MIN_CRYPTOPP_VERSION 5.6)
|
|
set (MIN_GDLIB_VERSION 2.0.0)
|
|
set (MIN_WX_VERSION 2.8.12)
|
|
set (PACKAGE "amule")
|
|
set (PACKAGE_BUGREPORT "admin@amule.org")
|
|
set (PACKAGE_NAME "aMule")
|
|
set (PACKAGE_STRING "aMule SVN")
|
|
set (PACKAGE_TARNAME "amule")
|
|
set (PACKAGE_URL \"\")
|
|
set (PACKAGE_VERSION "SVN")
|
|
set (VERSION "GIT")
|
|
set (DEFAULT_BUILD_TYPE "Release")
|
|
set (RECONF_COMMAND ${CMAKE_COMMAND})
|
|
|
|
if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
|
set (DEFAULT_BUILD_TYPE "Debug")
|
|
endif()
|
|
|
|
# Set the possible values of build type for cmake-gui
|
|
if (CMAKE_CONFIGURATION_TYPES)
|
|
set (CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE
|
|
STRING "Semicolon separated list of supported configuration types, only supports debug and release, anything else will be ignored" FORCE
|
|
)
|
|
|
|
set_property (CACHE CMAKE_CONFIGURATION_TYPES PROPERTY STRINGS
|
|
"Debug" "Release"
|
|
)
|
|
endif()
|
|
|
|
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
message (STATUS "Setting build type to '${DEFAULT_BUILD_TYPE}' as none was specified.")
|
|
set (CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE
|
|
STRING "Choose the type of build." FORCE
|
|
)
|
|
endif()
|
|
|
|
include (cmake/CmDaB.cmake)
|
|
include (cmake/manpage_install.cmake)
|
|
include (cmake/options.cmake)
|
|
include (cmake/search-dirs.cmake)
|
|
|
|
if (BUILD_AMULECMD OR BUILD_WEBSERVER)
|
|
include (cmake/FindReadline.cmake)
|
|
endif()
|
|
|
|
if (BUILD_CAS)
|
|
include (cmake/gdlib.cmake)
|
|
include (cmake/getopt_long.cmake)
|
|
endif()
|
|
|
|
if (BUILD_PLASMAMULE)
|
|
find_package (Qt4 COMPONENTS QtCore QtGUI REQUIRED)
|
|
endif()
|
|
|
|
if (BUILD_WEBSERVER OR NEED_ZLIB)
|
|
include (cmake/zlib.cmake)
|
|
endif()
|
|
|
|
if (BUILD_WEBSERVER)
|
|
include (cmake/png.cmake)
|
|
endif()
|
|
|
|
if (ENABLE_BOOST)
|
|
include (cmake/boost.cmake)
|
|
endif()
|
|
|
|
if (ENABLE_IP2COUNTRY)
|
|
include (cmake/ip2country.cmake)
|
|
endif()
|
|
|
|
if (ENABLE_NLS)
|
|
include (cmake/nls.cmake)
|
|
endif()
|
|
|
|
if (ENABLE_UPNP)
|
|
include (cmake/upnp.cmake)
|
|
endif()
|
|
|
|
if (NEED_GLIB_CHECK)
|
|
include (cmake/glib21.cmake)
|
|
endif()
|
|
|
|
if (NEED_LIB_CRYPTO)
|
|
include (cmake/cryptopp.cmake)
|
|
endif()
|
|
|
|
if (wx_NEEDED)
|
|
include (cmake/wx.cmake)
|
|
endif()
|
|
|
|
if (NOT SVNDATE)
|
|
find_package (Git)
|
|
|
|
if (GIT_FOUND)
|
|
execute_process (
|
|
COMMAND ${GIT_EXECUTABLE} describe
|
|
OUTPUT_VARIABLE GIT_INFO_WC_REVISION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
|
endif (GIT_FOUND)
|
|
|
|
set (SVNDATE "rev. ${GIT_INFO_WC_REVISION}" CACHE STRING "Revision to be written to version string" FORCE)
|
|
message (STATUS "git revision ${SVNDATE} found")
|
|
endif()
|
|
|
|
include (cmake/bfd.cmake)
|
|
|
|
configure_file (
|
|
config.h.cm
|
|
config.h
|
|
)
|
|
|
|
if (WIN32)
|
|
configure_file (
|
|
version.rc.in
|
|
version.rc
|
|
)
|
|
endif()
|
|
|
|
if (BUILD_MONOLITHIC)
|
|
install (FILES amule.desktop
|
|
DESTINATION "${CMAKE_INSTALL_DATADIR}/applications"
|
|
)
|
|
endif()
|
|
|
|
if (BUILD_REMOTEGUI)
|
|
install (FILES amulegui.desktop
|
|
DESTINATION "${CMAKE_INSTALL_DATADIR}/applications"
|
|
)
|
|
endif()
|
|
|
|
install (FILES org.amule.amule.metainfo.xml
|
|
DESTINATION "${CMAKE_INSTALL_DATADIR}/metainfo"
|
|
)
|
|
|
|
if (ENABLE_NLS)
|
|
include (FindGettext)
|
|
add_subdirectory (po)
|
|
endif()
|
|
|
|
add_subdirectory (docs)
|
|
add_subdirectory (src)
|
|
|
|
if (BUILD_TESTING)
|
|
enable_testing()
|
|
add_subdirectory (unittests)
|
|
endif()
|
|
|
|
message (STATUS "
|
|
|
|
Configured aMule ${PACKAGE_VERSION}${SVN_REVISION} for '${CMAKE_SYSTEM}' on '${CMAKE_SYSTEM_PROCESSOR}'.
|
|
|
|
aMule enabled options:
|
|
|
|
**** aMule Core ****
|
|
Prefix where aMule should be installed? ${CMAKE_PREFIX_PATH}
|
|
Should aMule be compiled with i18n support? ${ENABLE_NLS}
|
|
Which mode should aMule be compiled in? ${CMAKE_BUILD_TYPE}
|
|
Should aMule be compiled with UPnP support? ${ENABLE_UPNP}
|
|
Should aMule be compiled with IP2country support? ${ENABLE_IP2COUNTRY}
|
|
Should aMule monolithic application be built? ${BUILD_MONOLITHIC}
|
|
Should aMule daemon version be built? ${BUILD_DAEMON}
|
|
Should aMule remote gui be built? ${BUILD_REMOTEGUI}
|
|
|
|
**** aMule TextClient ****
|
|
Should aMule Command Line Client be built? ${BUILD_AMULECMD}
|
|
|
|
**** aMule WebServer ****
|
|
Should aMule WebServer be built? ${BUILD_WEBSERVER}
|
|
|
|
**** aMule ED2K Links Handler ****
|
|
Should aMule ED2K Links Handler be built? ${BUILD_ED2K}
|
|
|
|
**** aMuleLinkCreator ****
|
|
Should aMuleLinkCreator GUI version (alc) be built? ${BUILD_ALC}
|
|
Should aMuleLinkCreator for console (alcc) be built? ${BUILD_ALCC}
|
|
|
|
**** aMule Statistics ****
|
|
Should C aMule Statistics (CAS) be built? ${BUILD_CAS}
|
|
Should aMule GUI Statistics (wxCas) be built? ${BUILD_WXCAS}"
|
|
)
|
|
|
|
if (UNIX)
|
|
message (" Should xas XChat2 plugin be installed? ${BUILD_XAS}")
|
|
endif()
|
|
|
|
message ("
|
|
**** General Libraries and Tools ****
|
|
Should aMule file viewer for console be built? ${BUILD_FILEVIEW}
|
|
|
|
Libraries aMule will use to build:"
|
|
)
|
|
|
|
if (NEED_WX)
|
|
message (STATUS " wxWidgets ${WX_VERSION}")
|
|
endif()
|
|
|
|
if (ASIO_SOCKETS)
|
|
message (" boost ${Boost_VERSION}")
|
|
endif()
|
|
|
|
if (NEED_LIB_CRYPTO)
|
|
message (" crypto++ ${CRYPTOPP_VERSION} in ${CRYPTOPP_INCLUDE_PREFIX}")
|
|
endif()
|
|
|
|
if (ENABLE_UPNP)
|
|
message (" libupnp ${LIBUPNP_VERSION}")
|
|
endif()
|
|
|
|
message (" libintl ${ENABLE_NLS}")
|
|
|
|
if (ENABLE_IP2COUNTRY)
|
|
message (" libGeoIP ${GEOIP_LIB}")
|
|
endif()
|
|
|
|
if (BUILD_WEBSERVER)
|
|
message (" libpng ${PNG_VERSION_STRING}")
|
|
endif()
|
|
|
|
if (BUILD_CAS)
|
|
message (" libgd ${gdlib_VERSION}")
|
|
endif()
|
|
|
|
if (NEED_ZLIB)
|
|
message (" zlib ${ZLIB_VERSION_STRING}")
|
|
endif()
|