vcpkg/ports/cgicc/CMakeLists.txt
2018-01-20 16:18:36 +02:00

116 lines
3.2 KiB
CMake

cmake_minimum_required (VERSION 3.8)
project (cgicc)
include (CheckIncludeFiles)
include(CheckSymbolExists)
include (CheckCXXSourceCompiles)
set (VERSION "3.2.19")
execute_process (COMMAND hostname OUTPUT_VARIABLE HOST OUTPUT_STRIP_TRAILING_WHITESPACE)
check_include_files (dlfcn.h HAVE_DLFCN_H)
check_symbol_exists(gettimeofday sys/time.h HAVE_GETTIMEOFDAY)
check_include_files (inttypes.h HAVE_INTTYPES_H)
check_include_files (memory.h HAVE_MEMORY_H)
check_cxx_source_compiles ("
namespace test { }
int main(int, char**) {
using namespace ::test;
}" HAVE_NAMESPACES)
check_include_files (stdint.h HAVE_STDINT_H)
check_include_files (stdlib.h HAVE_STDLIB_H)
set (CMAKE_REQUIRED_FLAGS "-DHAVE_NAMESPACES")
check_cxx_source_compiles ("
#include <list>
#include <deque>
#ifdef HAVE_NAMESPACES
using namespace std;
#endif
int
main ()
{
list<int> x; x.push_back(5);
list<int>::iterator iter = x.begin(); if (iter != x.end()) ++iter; return 0;
;
return 0;
}" HAVE_STL)
check_include_files (strings.h HAVE_STRINGS_H)
check_include_files (string.h HAVE_STRING_H)
check_include_files (sys/stat.h HAVE_SYS_STAT_H)
check_include_files (sys/time.h HAVE_SYS_TIME_H)
check_include_files (sys/types.h HAVE_SYS_TYPES_H)
check_include_files (sys/utsname.h HAVE_SYS_UTSNAME_H)
check_symbol_exists (uname sys/utsname.h HAVE_UNAME)
check_include_files (unistd.h HAVE_UNISTD_H)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cgicc/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cgicc/CgiDefs.h.in ${CMAKE_CURRENT_BINARY_DIR}/CgiDefs.h)
add_definitions (-DHAVE_CONFIG_H)
set (cgicc_SOURCES
cgicc/CgiEnvironment.cpp
cgicc/CgiInput.cpp
cgicc/CgiUtils.cpp
cgicc/Cgicc.cpp
cgicc/FormEntry.cpp
cgicc/FormFile.cpp
cgicc/HTMLAttribute.cpp
cgicc/HTMLAttributeList.cpp
cgicc/HTMLDoctype.cpp
cgicc/HTMLElement.cpp
cgicc/HTMLElementList.cpp
cgicc/HTTPContentHeader.cpp
cgicc/HTTPCookie.cpp
cgicc/HTTPHTMLHeader.cpp
cgicc/HTTPHeader.cpp
cgicc/HTTPPlainHeader.cpp
cgicc/HTTPRedirectHeader.cpp
cgicc/HTTPResponseHeader.cpp
cgicc/HTTPStatusHeader.cpp
cgicc/HTTPXHTMLHeader.cpp
cgicc/MStreamable.cpp
cgicc/XHTMLDoctype.cpp
cgicc/XMLPI.cpp)
set (cgicc_HEADERS
cgicc/Cgicc.h
cgicc/CgiEnvironment.h
cgicc/CgiInput.h
cgicc/CgiUtils.h
cgicc/FormEntry.h
cgicc/FormFile.h
cgicc/HTMLAtomicElement.h
cgicc/HTMLAttribute.h
cgicc/HTMLAttributeList.h
cgicc/HTMLBooleanElement.h
cgicc/HTMLClasses.h
cgicc/HTMLDoctype.h
cgicc/HTMLElement.h
cgicc/HTMLElementList.h
cgicc/HTTPContentHeader.h
cgicc/HTTPCookie.h
cgicc/HTTPHeader.h
cgicc/HTTPHTMLHeader.h
cgicc/HTTPPlainHeader.h
cgicc/HTTPRedirectHeader.h
cgicc/HTTPResponseHeader.h
cgicc/HTTPStatusHeader.h
cgicc/HTTPXHTMLHeader.h
cgicc/MStreamable.h
cgicc/XHTMLDoctype.h
cgicc/XMLDeclaration.h
cgicc/XMLPI.h
${CMAKE_CURRENT_BINARY_DIR}/CgiDefs.h
${CMAKE_CURRENT_BINARY_DIR}/config.h
)
include_directories (. ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
add_library (cgicc ${cgicc_SOURCES} ${cgicc_HEADERS})
install(TARGETS cgicc
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(NOT DISABLE_INSTALL_HEADERS)
install(FILES ${cgicc_HEADERS} DESTINATION include/cgicc)
endif()