mirror of
https://github.com/lexborisov/Modest
synced 2024-11-22 13:51:39 +03:00
187 lines
5.7 KiB
CMake
187 lines
5.7 KiB
CMake
cmake_minimum_required( VERSION 2.8.8 )
|
|
|
|
################
|
|
## version and path
|
|
#########################
|
|
set(MODEST_PROJECT_NAME "modest")
|
|
set(MODEST_PROJECT_DIR_ROOT "..")
|
|
set(MODEST_PROJECT_DIR_LIB "${MODEST_PROJECT_DIR_ROOT}/lib")
|
|
set(MODEST_PROJECT_API_HEADER "${MODEST_PROJECT_DIR_ROOT}/include/")
|
|
set(MODEST_PROJECT_SOURCE "${MODEST_PROJECT_DIR_ROOT}/source")
|
|
|
|
set(MODEST_VERSION_MAJOR 0)
|
|
set(MODEST_VERSION_MINOR 0)
|
|
set(MODEST_VERSION_PATCH 5)
|
|
set(MODEST_VERSION_STRING "${MODEST_VERSION_MAJOR}.${MODEST_VERSION_MINOR}.${MODEST_VERSION_PATCH}")
|
|
|
|
project(${MODEST_PROJECT_NAME})
|
|
|
|
################
|
|
## Detect OS
|
|
#########################
|
|
set(MODEST_PLATFORM "UNDEF")
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
if(EXISTS "/etc/debian_version")
|
|
set(MODEST_PLATFORM "Debian")
|
|
endif(EXISTS "/etc/debian_version")
|
|
|
|
if(EXISTS "/etc/redhat-release")
|
|
set(MODEST_PLATFORM "Redhat")
|
|
endif(EXISTS "/etc/redhat-release")
|
|
|
|
if(EXISTS "/etc/fedora-release")
|
|
set(MODEST_PLATFORM "Redhat")
|
|
endif(EXISTS "/etc/fedora-release")
|
|
|
|
if(EXISTS "/etc/SuSE-release")
|
|
set(MODEST_PLATFORM "SuSe")
|
|
endif(EXISTS "/etc/SuSE-release")
|
|
|
|
if(EXISTS "/etc/gentoo-release")
|
|
set(MODEST_PLATFORM "Gentoo")
|
|
endif(EXISTS "/etc/gentoo-release")
|
|
endif()
|
|
|
|
################
|
|
## lib param
|
|
#########################
|
|
if(POLICY CMP0042)
|
|
cmake_policy(SET CMP0042 OLD)
|
|
endif()
|
|
|
|
set(MODEST_PROJECT_LIB_NAME "${MODEST_PROJECT_NAME}")
|
|
set(MODEST_PROJECT_LIB_NAME_STATIC "${MODEST_PROJECT_NAME}_static")
|
|
|
|
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
|
set(CMAKE_INSTALL_LIBDIR "lib")
|
|
endif()
|
|
|
|
if(NOT DEFINED MODEST_OPTIMIZATION_LEVEL)
|
|
set(MODEST_OPTIMIZATION_LEVEL "-O2")
|
|
endif()
|
|
|
|
if(NOT DEFINED MyCORE_BUILD_WITHOUT_THREADS)
|
|
set(MyCORE_BUILD_WITHOUT_THREADS "NO")
|
|
endif()
|
|
|
|
################
|
|
## ARGS
|
|
#########################
|
|
set(INSTALL_DLL_EXE_DIR "bin")
|
|
|
|
option(MODEST_BUILD_SHARED "Build shared library" ON)
|
|
option(MODEST_BUILD_STATIC "Build static library" ON)
|
|
option(MODEST_INSTALL_HEADER "Install header files" ON)
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MODEST_OPTIMIZATION_LEVEL}")
|
|
|
|
include_directories(${MODEST_PROJECT_SOURCE})
|
|
#FILE(GLOB_RECURSE ALL_SOURCE_LIST "${MODEST_PROJECT_SOURCE}/*.c")
|
|
FILE(GLOB MODEST_MODULE_LIST "${MODEST_PROJECT_SOURCE}/[^.]*")
|
|
|
|
list(FIND MODEST_MODULE_LIST "/new/C-git/Modest/projects/../source/myport/" ALL_SOURCE_LISTDDD)
|
|
|
|
message(STATUS ${ALL_SOURCE_LISTDDD})
|
|
|
|
# if (!UNIX AND WIN32)
|
|
# if(${CMAKE_CL_64})
|
|
# add_definitions(-D_WIN64)
|
|
# else()
|
|
# add_definitions(-D_WIN32)
|
|
# endif()
|
|
# endif()
|
|
|
|
# if(${CMAKE_C_COMPILER_ID} STREQUAL MSVC)
|
|
# add_definitions(/wd4100 /wd4255 /wd4820 /wd4668)
|
|
# add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
|
|
# message(STATUS "Windows set definitions")
|
|
# else()
|
|
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall --std=c99 -fPIC")
|
|
|
|
# if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
# add_definitions(-D_POSIX_C_SOURCE=199309L)
|
|
# endif()
|
|
|
|
# if(MyCORE_BUILD_WITHOUT_THREADS STREQUAL "NO")
|
|
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
|
|
# endif()
|
|
# endif()
|
|
|
|
# if(MyCORE_BUILD_WITHOUT_THREADS STREQUAL "YES")
|
|
# message(STATUS "Build without POSIX Threads")
|
|
# add_definitions(-DMyCORE_BUILD_WITHOUT_THREADS)
|
|
# else()
|
|
# message(STATUS "Build with POSIX Threads")
|
|
# endif()
|
|
|
|
# ################
|
|
# ## build
|
|
# #########################
|
|
# if(MODEST_BUILD_SHARED)
|
|
# add_library(${MODEST_PROJECT_NAME} SHARED ${ALL_SOURCE_LIST})
|
|
# set_target_properties(${MODEST_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${MODEST_PROJECT_NAME})
|
|
# set_target_properties(${MODEST_PROJECT_NAME} PROPERTIES VERSION ${MODEST_VERSION_STRING} SOVERSION ${MODEST_VERSION_MAJOR})
|
|
# endif()
|
|
|
|
# if(MODEST_BUILD_STATIC)
|
|
# add_library(${MODEST_PROJECT_LIB_NAME_STATIC} STATIC ${ALL_SOURCE_LIST})
|
|
# set_target_properties(${MODEST_PROJECT_LIB_NAME_STATIC} PROPERTIES OUTPUT_NAME ${MODEST_PROJECT_LIB_NAME_STATIC})
|
|
# set_target_properties(${MODEST_PROJECT_LIB_NAME_STATIC} PROPERTIES VERSION ${MODEST_VERSION_STRING} SOVERSION ${MODEST_VERSION_MAJOR})
|
|
# endif()
|
|
|
|
# ################
|
|
# ## install
|
|
# #########################
|
|
# if(MODEST_INSTALL_HEADER)
|
|
# install(DIRECTORY "${MODEST_PROJECT_API_HEADER}" DESTINATION "include" FILES_MATCHING PATTERN "*.h")
|
|
# endif()
|
|
|
|
# if(MODEST_BUILD_SHARED)
|
|
# install(TARGETS ${MODEST_PROJECT_LIB_NAME}
|
|
# RUNTIME DESTINATION "${INSTALL_DLL_EXE_DIR}"
|
|
# LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
|
# endif()
|
|
|
|
# if(MODEST_BUILD_STATIC)
|
|
# install(TARGETS ${MODEST_PROJECT_LIB_NAME_STATIC}
|
|
# RUNTIME DESTINATION "${INSTALL_DLL_EXE_DIR}"
|
|
# ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
|
# endif()
|
|
|
|
# ################
|
|
# ## Build an RPM.
|
|
# #########################
|
|
# set(CPACK_PACKAGE_VERSION ${MODEST_VERSION_STRING})
|
|
|
|
# if(MODEST_PLATFORM STREQUAL "Debian")
|
|
# set(CPACK_GENERATOR "DEB")
|
|
# elseif(MODEST_PLATFORM STREQUAL "Redhat")
|
|
# set(CPACK_GENERATOR "RPM")
|
|
# elseif(MODEST_PLATFORM STREQUAL "SuSe")
|
|
# set(CPACK_GENERATOR "RPM")
|
|
# else()
|
|
# set(CPACK_GENERATOR "TGZ")
|
|
# endif()
|
|
|
|
# set(CPACK_PACKAGE_NAME "modest")
|
|
# set(CPACK_PACKAGE_RELEASE 1)
|
|
# set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Modest is a fast HTML Render implemented as a pure C99 library with no outside dependencies.")
|
|
# set(CPACK_PACKAGE_CONTACT "Alexander Borisov")
|
|
# set(CPACK_PACKAGE_VENDOR "Alexander Borisov")
|
|
|
|
# if(32BIT)
|
|
# set(CPACK_RPM_PACKAGE_ARCHITECTURE i686)
|
|
# else()
|
|
# set(CPACK_RPM_PACKAGE_ARCHITECTURE x86_64)
|
|
# endif()
|
|
|
|
# if(MyCORE_BUILD_WITHOUT_THREADS STREQUAL "YES")
|
|
# set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_PACKAGE_RELEASE}-without-threads.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
|
|
# else()
|
|
# set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
|
|
# endif()
|
|
|
|
# include(CPack)
|