2016-04-26 12:35:53 +02:00
cmake_minimum_required ( VERSION 3.2.2 )
project ( Lexesis VERSION 0.1 )
set ( CMAKE_CXX_STANDARD 11 )
2016-05-24 01:14:15 +02:00
set ( CMAKE_CXX_STANDARD_REQUIRED 11 )
2016-04-26 12:35:53 +02:00
2016-05-24 11:46:36 +02:00
include ( ExternalProject )
find_package ( mstch QUIET )
if ( NOT mstch_FOUND )
ExternalProject_Add ( ext-mstch
G I T _ R E P O S I T O R Y h t t p s : / / g i t h u b . c o m / n o 1 m s d / m s t c h
G I T _ T A G 1 . 0 . 2
#The following line is a dirty hack
#to prevent cmake from needlessly clone any submodule
#inspect `ext-mstch-prefix/tmp/ext-mstch-gitclone.cmake` for more info
G I T _ S U B M O D U L E S " N O N E \ C O M M A N D \ t r u e \ E R R O R _ Q U I E T "
C M A K E _ A R G S - D W I T H _ U N I T _ T E S T S = N O
I N S T A L L _ C O M M A N D " "
E X C L U D E _ F R O M _ A L L 1
)
add_library ( mstch::mstch IMPORTED STATIC GLOBAL )
add_dependencies ( mstch::mstch ext-mstch )
ExternalProject_Get_Property ( ext-mstch source_dir binary_dir )
set_target_properties ( mstch::mstch PROPERTIES "IMPORTED_LOCATION" "${binary_dir}/src/${CMAKE_STATIC_LIBRARY_PREFIX}mstch${CMAKE_STATIC_LIBRARY_SUFFIX}" )
include_directories ( ${ source_dir } /include )
endif ( )
2016-05-26 15:59:57 +02:00
ExternalProject_Add ( ext-optparse
G I T _ R E P O S I T O R Y h t t p s : / / g i t h u b . c o m / w e i s s l j / c p p - o p t p a r s e
P A T C H _ C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y " $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / c m a k e / O p t P a r s e . c m a k e l i s t s " " $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / e x t - o p t p a r s e - p r e f i x / s r c / e x t - o p t p a r s e / C M a k e L i s t s . t x t "
2016-05-26 12:17:28 +02:00
I N S T A L L _ C O M M A N D " "
E X C L U D E _ F R O M _ A L L 1
)
2016-05-26 15:59:57 +02:00
add_library ( cpp-optparse IMPORTED STATIC GLOBAL )
add_dependencies ( cpp-optparse ext-optparse )
2016-05-26 12:17:28 +02:00
2016-05-26 15:59:57 +02:00
ExternalProject_Get_Property ( ext-optparse source_dir binary_dir )
set_target_properties ( cpp-optparse PROPERTIES "IMPORTED_LOCATION" "${binary_dir}/${CMAKE_STATIC_LIBRARY_PREFIX}cpp-optparse${CMAKE_STATIC_LIBRARY_SUFFIX}" )
2016-05-26 12:17:28 +02:00
include_directories ( ${ source_dir } )
2016-05-24 11:46:36 +02:00
##########################################
2016-05-27 15:21:10 +02:00
find_package ( Doxygen )
if ( DOXYGEN_FOUND )
configure_file ( ${ CMAKE_CURRENT_SOURCE_DIR } /Doxyfile.in ${ CMAKE_CURRENT_BINARY_DIR } /Doxyfile @ONLY )
add_custom_target ( doc ${ DOXYGEN_EXECUTABLE } ${ CMAKE_CURRENT_BINARY_DIR } /Doxyfile WORKING_DIRECTORY ${ CMAKE_CURRENT_BINARY_DIR } COMMENT "Generating API documentation" VERBATIM )
endif ( DOXYGEN_FOUND )
2016-05-24 11:46:36 +02:00
set ( CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}" )
include_directories ( include )
2016-04-26 12:35:53 +02:00
add_subdirectory ( src )
2016-05-24 11:46:36 +02:00
install ( DIRECTORY templates
D E S T I N A T I O N s h a r e / L e x e s i s
)