Major refactoring effort underway.
This commit is contained in:
41
cmake/docs.cmake
Normal file
41
cmake/docs.cmake
Normal file
@@ -0,0 +1,41 @@
|
||||
# Doxygen support for scsl.
|
||||
|
||||
add_custom_target(manpages)
|
||||
|
||||
macro(md2man source)
|
||||
block()
|
||||
set(SOURCE_MANPAGE)
|
||||
set(SOURCE_SECTION)
|
||||
string(REGEX REPLACE "^.+/([^/]+)\.md$" "\\1" SOURCE_MANPAGE ${source})
|
||||
string(REGEX REPLACE "^.+/[^/]+\.([0-9])\.md$" "\\1" SOURCE_SECTION ${source})
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man/man${SOURCE_SECTION})
|
||||
configure_file(${source} ${SOURCE_MANPAGE}.scdoc)
|
||||
add_custom_command(TARGET manpages
|
||||
COMMAND scdoc < ${SOURCE_MANPAGE}.scdoc > man/man${SOURCE_SECTION}/${SOURCE_MANPAGE})
|
||||
endblock()
|
||||
endmacro()
|
||||
|
||||
md2man(docs/emsha.3.md)
|
||||
|
||||
find_package(Doxygen)
|
||||
if (${DOXYGEN_FOUND})
|
||||
# prefer scdocs for manpages.
|
||||
set(DOXYGEN_GENERATE_MAN NO)
|
||||
set(DOXYGEN_GENERATE_LATEX YES)
|
||||
set(DOXYGEN_EXTRACT_ALL YES)
|
||||
set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_CURRENT_SOURCE_DIR}/docs/mainpage.md")
|
||||
message(STATUS "Doxygen found, building docs.")
|
||||
|
||||
doxygen_add_docs(${PROJECT_NAME}_docs
|
||||
${HEADER_FILES}
|
||||
${SOURCE_FILES}
|
||||
USE_STAMP_FILE)
|
||||
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_docs)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
|
||||
${CMAKE_CURRENT_BINARY_DIR}/latex
|
||||
DESTINATION share/doc/${PROJECT_NAME}/doxygen)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man
|
||||
DESTINATION share)
|
||||
add_dependencies(${PROJECT_NAME}_docs manpages)
|
||||
endif ()
|
||||
|
||||
3
cmake/emshaConfig.cmake
Normal file
3
cmake/emshaConfig.cmake
Normal file
@@ -0,0 +1,3 @@
|
||||
set(EMSHA_INCLUDE_DIRS include/@PROJECT_NAME@)
|
||||
set(EMSHA_LIBRARIES libemsha-@PROJECT_VERSION_MAJOR@.a)
|
||||
|
||||
27
cmake/install.cmake
Normal file
27
cmake/install.cmake
Normal file
@@ -0,0 +1,27 @@
|
||||
### Install ###
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
### library packaging for CMake and pkgconfig to find built targets.
|
||||
write_basic_package_version_file(
|
||||
${PROJECT_NAME}Config.cmake
|
||||
VERSION ${PACKAGE_VERSION}
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
|
||||
|
||||
### set up installation targets.
|
||||
|
||||
install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib)
|
||||
install(FILES ${HEADERS} DESTINATION include/${PROJECT_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
|
||||
DESTINATION lib/pkgconfig)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
|
||||
DESTINATION share/${PROJECT_CMAKE_CONFIG_NAME}/cmake)
|
||||
|
||||
|
||||
41
cmake/packaging.cmake
Normal file
41
cmake/packaging.cmake
Normal file
@@ -0,0 +1,41 @@
|
||||
### Packaging ###
|
||||
|
||||
include(InstallRequiredSystemLibraries)
|
||||
|
||||
set(CPACK_PACKAGE_VENDOR "K. Isom")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION})
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
|
||||
|
||||
set(CPACK_PACKAGE_FILE_NAME
|
||||
${PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_ARCH}${CMAKE_HOST_SYSTEM_PROCESSOR})
|
||||
|
||||
# Debian settings
|
||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_VENDOR})
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${CPACK_PACKAGE_DESCRIPTION})
|
||||
set(CPACK_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
|
||||
set(CPACK_PACKAGE_DEPENDS)
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION devel)
|
||||
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON)
|
||||
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
|
||||
|
||||
if(LINUX)
|
||||
set(CPACK_GENERATOR "DEB;STGZ;TGZ")
|
||||
elseif(APPLE)
|
||||
set(CPACK_GENERATOR "productbuild")
|
||||
elseif(MSVC OR MSYS OR MINGW)
|
||||
set(CPACK_GENERATOR "NSIS;ZIP")
|
||||
else()
|
||||
set(CPACK_GENERATOR "ZIP")
|
||||
endif()
|
||||
|
||||
set(CPACK_SOURCE_GENERATOR "TGZ;ZIP")
|
||||
|
||||
set(CPACK_SOURCE_IGNORE_FILES
|
||||
/.git
|
||||
/dist
|
||||
/.*build.*)
|
||||
|
||||
include (CPack)
|
||||
add_custom_target(package_docs DEPENDS emsha_docs package package_source)
|
||||
Reference in New Issue
Block a user