MultiMarkdown-6/CMakeLists.txt

151 lines
3.3 KiB
CMake

cmake_minimum_required (VERSION 2.6)
# ==================
# Define Our Project
# ==================
set (My_Project_Title "Some Project")
set (My_Project_Description "A project built using the c-template system.")
set (My_Project_Author "Somebody")
set (My_Project_Revised_Date "2015-06-05")
set (My_Project_Version_Major 1)
set (My_Project_Version_Minor 0)
set (My_Project_Version_Patch 0)
set (My_Project_Version "${My_Project_Version_Major}.${My_Project_Version_Minor}.${My_Project_Version_Patch}")
set (My_Project_Copyright_Date "2015")
set (My_Project_Copyright "Copyright © ${My_Project_Copyright_Date} ${My_Project_Author}.")
project (${My_Project_Title})
# Search for included files here
include_directories( ${PROJECT_SOURCE_DIR}/src )
include_directories( ${PROJECT_SOURCE_DIR}/test )
string(TOUPPER ${My_Project_Title} My_Project_Title_Caps )
string(REGEX REPLACE " " "_" My_Project_Title_Caps ${My_Project_Title_Caps} )
# ======================
# Process Template Files
# ======================
file(READ ${PROJECT_SOURCE_DIR}/LICENSE.txt My_Project_License)
string(REGEX REPLACE "\n" "\n\t" My_Project_License_Indent ${My_Project_License})
configure_file (
"${PROJECT_SOURCE_DIR}/templates/template.c.in"
"${PROJECT_BINARY_DIR}/template.c"
)
configure_file (
"${PROJECT_SOURCE_DIR}/templates/template.h.in"
"${PROJECT_BINARY_DIR}/template.h"
)
configure_file (
"${PROJECT_SOURCE_DIR}/templates/README.md.in"
"${PROJECT_BINARY_DIR}/README.md"
)
# =============
# Build Targets
# =============
# src_files are the primary files, and will be included in doxygen documentation
set(src_files
# src/foo.c
)
# primary header files
set(header_files
)
# Utility source files will not be included in doxygen
set(src_utility_files
# src/GLibFacade.c
)
set(header_utility_files
# src/GLibFacade.h
)
# Create a library?
# add_library(libFOO STATIC
# ${src_files}
# ${src_utility_files}
# ${header_files}
# ${header_utility_files}
# )
# remove the extra "lib" from "liblibFOO"
# SET_TARGET_PROPERTIES(libFOO PROPERTIES PREFIX "")
# Create a command-line app?
# if (NOT DEFINED TEST)
# add_executable(main
# src/main.c
# src/GLibFacade.c
# src/GLibFacade.h
# ${header_files}
# )
#
# Link the library to the app?
# target_link_libraries(main libFOO)
# endif()
# Generate doxygen configuration file
string(REPLACE ";" " " doxygen_src_files "${src_files}" )
string(REPLACE ";" " " doxygen_header_files "${header_files}" )
configure_file (
"${PROJECT_SOURCE_DIR}/templates/doxygen.conf.in"
"${PROJECT_BINARY_DIR}/doxygen.conf"
)
# ===========================================
# Build Test Suite with CuTest (unit testing)
# ===========================================
set(test_files
test/CuTest.c
test/CuTest.h
${PROJECT_BINARY_DIR}/AllTests.c
)
if (DEFINED TEST)
add_definitions(-DTEST)
add_executable(run_tests
${test_files}
${src_files}
${header_files}
)
# Process source files to look for tests to run
add_custom_command (
OUTPUT ${PROJECT_BINARY_DIR}/AllTests.c
COMMAND sh ${PROJECT_SOURCE_DIR}/test/make-tests.sh ${PROJECT_SOURCE_DIR}/src/*.c > ${PROJECT_BINARY_DIR}/AllTests.c
)
enable_testing()
add_test( test ${PROJECT_BINARY_DIR}/run_tests)
endif()
# ==========================
# Build Installer with CPack
# ==========================
# You're on your own here