CMakeUserFindCTPP2: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
(Add explicit preformat markup) |
(Remove leading space rectangles from preformatted blocks) |
||
Line 2: | Line 2: | ||
----- | ----- | ||
<pre> | <pre> | ||
# - Find CTPP2 | |||
# Find the native CTPP2 headers, libraries, and compiler. | |||
# | |||
# CTPP2_INCLUDE_DIRS - where to find CTPP2.hpp, etc. | |||
# CTPP2_LIBRARIES - List of libraries when using ctpp2. | |||
# CTPP2_FOUND - True if ctpp2 found. | |||
# CTPP2_CTPP2C_EXECUTABLE - template compiler | |||
# MACROS for optional use by CTPP2 users: | |||
# | |||
# CTPP2_ADD_TEMPLATES(<installation_destination> <templates_to_compile...>) | |||
# Compiles the text template (.ctpp2) into a binary form (.ct2) | |||
# Parameters: | |||
# _install_dest The template installation destination | |||
# templates_to_compile The list of templates without the .ctpp2 extension | |||
# | |||
# #============== | |||
# Example Usage: | |||
# | |||
# find_package(CTPP2 REQUIRED) | |||
# include_directories(${CTPP2_INCLUDE_DIRS}) | |||
# set(_templates main.html main.json main.dbg) | |||
# CTPP2_ADD_TEMPLATES(www/templates ${_templates}) | |||
#============================================================================= | |||
# Copyright 2010 Kitware, Inc. | |||
# Copyright 2010 Mike Trinkala <trink@acm.org> | |||
# | |||
# Distributed under the OSI-approved BSD License (the "License"); | |||
# see accompanying file Copyright.txt for details. | |||
# | |||
# This software is distributed WITHOUT ANY WARRANTY; without even the | |||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||
# See the License for more information. | |||
#============================================================================= | |||
# (To distributed this file outside of CMake, substitute the full | |||
# License text for the above reference.) | |||
# Look for the header file. | |||
find_path(CTPP2_INCLUDE_DIR NAMES ctpp2/CTPP2.hpp) | |||
mark_as_advanced(CTPP2_INCLUDE_DIR) | |||
# Look for the library. | |||
find_library(CTPP2_LIBRARY NAMES ctpp2) | |||
mark_as_advanced(CTPP2_LIBRARY) | |||
# Look for the template compiler | |||
find_program(CTPP2_CTPP2C_EXECUTABLE NAMES ctpp2c) | |||
mark_as_advanced(CTPP2_CTPP2C_EXECUTABLE) | |||
# handle the QUIETLY and REQUIRED arguments and set CTPP2_FOUND to TRUE if | |||
# all listed variables are TRUE | |||
include(FindPackageHandleStandardArgs) | |||
find_package_handle_standard_args(CTPP2 DEFAULT_MSG CTPP2_LIBRARY CTPP2_INCLUDE_DIR CTPP2_CTPP2C_EXECUTABLE) | |||
if(CTPP2_FOUND) | |||
set(CTPP2_LIBRARIES ${CTPP2_LIBRARY}) | |||
set(CTPP2_INCLUDE_DIRS ${CTPP2_INCLUDE_DIR}) | |||
#============================================================ | |||
# CTPP2_ADD_TEMPLATES (public macro) | |||
#============================================================ | |||
# | # | ||
macro(CTPP2_ADD_TEMPLATES _install_dest) | |||
foreach(_template ${ARGN}) | |||
set(_input ${CMAKE_CURRENT_SOURCE_DIR}/${_template}.ctpp2) | |||
set(_output ${CMAKE_CURRENT_BINARY_DIR}/${_template}.ct2) | |||
add_custom_target(${_template}.ct2 ALL ${CTPP2_CTPP2C_EXECUTABLE} ${_input} ${_output}) | |||
install(FILES ${_output} DESTINATION ${_install_dest}) | |||
endforeach(_template) | |||
endmacro(CTPP2_ADD_TEMPLATES) | |||
#============================================================ | |||
else(CTPP2_FOUND) | |||
set(CTPP2_LIBRARIES) | |||
set(CTPP2_INCLUDE_DIRS) | |||
set(CTPP2_CTPP2C_EXECUTABLE) | |||
endif(CTPP2_FOUND) | |||
</pre> | </pre> | ||
----- | ----- |
Revision as of 21:04, 20 April 2018
# - Find CTPP2 # Find the native CTPP2 headers, libraries, and compiler. # # CTPP2_INCLUDE_DIRS - where to find CTPP2.hpp, etc. # CTPP2_LIBRARIES - List of libraries when using ctpp2. # CTPP2_FOUND - True if ctpp2 found. # CTPP2_CTPP2C_EXECUTABLE - template compiler # MACROS for optional use by CTPP2 users: # # CTPP2_ADD_TEMPLATES(<installation_destination> <templates_to_compile...>) # Compiles the text template (.ctpp2) into a binary form (.ct2) # Parameters: # _install_dest The template installation destination # templates_to_compile The list of templates without the .ctpp2 extension # # #============== # Example Usage: # # find_package(CTPP2 REQUIRED) # include_directories(${CTPP2_INCLUDE_DIRS}) # set(_templates main.html main.json main.dbg) # CTPP2_ADD_TEMPLATES(www/templates ${_templates}) #============================================================================= # Copyright 2010 Kitware, Inc. # Copyright 2010 Mike Trinkala <trink@acm.org> # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distributed this file outside of CMake, substitute the full # License text for the above reference.) # Look for the header file. find_path(CTPP2_INCLUDE_DIR NAMES ctpp2/CTPP2.hpp) mark_as_advanced(CTPP2_INCLUDE_DIR) # Look for the library. find_library(CTPP2_LIBRARY NAMES ctpp2) mark_as_advanced(CTPP2_LIBRARY) # Look for the template compiler find_program(CTPP2_CTPP2C_EXECUTABLE NAMES ctpp2c) mark_as_advanced(CTPP2_CTPP2C_EXECUTABLE) # handle the QUIETLY and REQUIRED arguments and set CTPP2_FOUND to TRUE if # all listed variables are TRUE include(FindPackageHandleStandardArgs) find_package_handle_standard_args(CTPP2 DEFAULT_MSG CTPP2_LIBRARY CTPP2_INCLUDE_DIR CTPP2_CTPP2C_EXECUTABLE) if(CTPP2_FOUND) set(CTPP2_LIBRARIES ${CTPP2_LIBRARY}) set(CTPP2_INCLUDE_DIRS ${CTPP2_INCLUDE_DIR}) #============================================================ # CTPP2_ADD_TEMPLATES (public macro) #============================================================ # macro(CTPP2_ADD_TEMPLATES _install_dest) foreach(_template ${ARGN}) set(_input ${CMAKE_CURRENT_SOURCE_DIR}/${_template}.ctpp2) set(_output ${CMAKE_CURRENT_BINARY_DIR}/${_template}.ct2) add_custom_target(${_template}.ct2 ALL ${CTPP2_CTPP2C_EXECUTABLE} ${_input} ${_output}) install(FILES ${_output} DESTINATION ${_install_dest}) endforeach(_template) endmacro(CTPP2_ADD_TEMPLATES) #============================================================ else(CTPP2_FOUND) set(CTPP2_LIBRARIES) set(CTPP2_INCLUDE_DIRS) set(CTPP2_CTPP2C_EXECUTABLE) endif(CTPP2_FOUND)