mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 17:38:35 +02:00
Optional: Move optional-lite to the include/third-party directory
This fixes the use case of adding the include folder manually to an outside project.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# Copyright 2017-2018 by Martin Moene
|
||||
#
|
||||
# https://github.com/martinmoene/optional-lite
|
||||
#
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
if( NOT DEFINED CMAKE_MINIMUM_REQUIRED_VERSION )
|
||||
cmake_minimum_required( VERSION 3.5 FATAL_ERROR )
|
||||
endif()
|
||||
|
||||
project( example LANGUAGES CXX )
|
||||
|
||||
set( unit_name "optional" )
|
||||
set( PACKAGE ${unit_name}-lite )
|
||||
set( PROGRAM ${unit_name}-lite )
|
||||
|
||||
message( STATUS "Subproject '${PROJECT_NAME}', examples '${PROGRAM}-*'")
|
||||
|
||||
set( OPTIONS "" )
|
||||
|
||||
if( MSVC )
|
||||
message( STATUS "Matched: MSVC")
|
||||
|
||||
set( BASE_OPTIONS -W3 )
|
||||
set( EXCEPTIONS_OPTIONS ${BASE_OPTIONS} -EHsc )
|
||||
set( NO_EXCEPTIONS_OPTIONS ${BASE_OPTIONS} )
|
||||
|
||||
elseif( CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang" )
|
||||
message( STATUS "CompilerId: '${CMAKE_CXX_COMPILER_ID}'")
|
||||
|
||||
set( BASE_OPTIONS -Wall -Wextra -Wconversion -Wsign-conversion -Wno-missing-braces -fno-elide-constructors )
|
||||
set( EXCEPTIONS_OPTIONS ${BASE_OPTIONS} )
|
||||
set( NO_EXCEPTIONS_OPTIONS -fno-exceptions )
|
||||
|
||||
elseif( CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
|
||||
# as is
|
||||
message( STATUS "Matched: Intel")
|
||||
else()
|
||||
# as is
|
||||
message( STATUS "Matched: nothing")
|
||||
endif()
|
||||
|
||||
function( make_target name no_exceptions )
|
||||
add_executable ( ${PROGRAM}-${name} ${name}.cpp )
|
||||
target_link_libraries ( ${PROGRAM}-${name} PRIVATE ${PACKAGE} )
|
||||
if ( no_exceptions )
|
||||
target_compile_options ( ${PROGRAM}-${name} PRIVATE ${NO_EXCEPTIONS_OPTIONS} )
|
||||
else()
|
||||
target_compile_options ( ${PROGRAM}-${name} PRIVATE ${EXCEPTIONS_OPTIONS} )
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
make_target( 01-to_int FALSE )
|
||||
make_target( 02-nodefltctor FALSE )
|
||||
# 04-any-optional-variant also requires variant-lite.
|
||||
make_target( 05-no-exceptions TRUE )
|
||||
|
||||
# end of file
|
||||
Reference in New Issue
Block a user