blob: f86a418fbe422e96c3aaa9c95e0af1eff7f00d7f [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cmake_minimum_required( VERSION 3.10 )
project( dependencies LANGUAGES NONE )
#TODO options?
set( USE_C++ 11 CACHE STRING "Use C++ standard X (11).")
set ( DEPENDENCIES
libxml2
openssl
ACE
boost
sqlite
doxygen
gtest
)
if ( "" STREQUAL "${USE_C++}" )
set (DEPENDENCIES STLport ${DEPENDENCIES})
endif()
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
set( CONFIGURE_FLAGS --prefix=<INSTALL_DIR> CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} )
set( CONFIGURE ./configure ${CONFIGURE_FLAGS} )
find_program( PATCH NAMES gpatch patch )
if ("PATCH-NOTFOUND" STREQUAL "${PATCH}")
message( FATAL_ERROR "patch not found." )
endif()
# TODO windows why was windows finding bash?
find_program( BASH bash )
if (WIN32)
find_program( MSBUILD msbuild )
# TODO FindPerl
find_program( PERL perl )
# Determin the Visual Studio version to generate projects for.
if (MSVC10)
set(MSVC_VERSION 10)
elseif(MSVC11)
set(MSVC_VERSION 11)
elseif(MSVC12)
set(MSVC_VERSION 12)
elseif(MSVC14)
set(MSVC_VERSION 14)
endIF()
set(DEPENDENCIES ${DEPENDENCIES} sqlite-netFx)
endif()
# TODO autoconfig?
set( CFLAGS_ARCH_32 -m32 )
set( CFLAGS_ARCH_64 -m64 )
# TODO check_c*_compiler_flag don't support linker flags
#check_c_compiler_flag( ${CFLAGS_ARCH_${BUILD_BITS}} CFLAGS_ARCH_${BUILD_BITS}_ALLOWED )
#if (${CFLAGS_ARCH_${BUILD_BITS}_ALLOWED})
set( CFLAGS_ARCH ${CFLAGS_ARCH_${BUILD_BITS}} )
#else()
# message( FATAL_ERROR "${BUILD_BITS} bits flag ${CFLAGS_ARCH_${BUILD_BITS}} not supported.")
#endif()
set( CXXFLAGS_ARCH_32 -m32 )
set( CXXFLAGS_ARCH_64 -m64 )
#check_cxx_compiler_flag( ${CXXFLAGS_ARCH_${BUILD_BITS}} CXXFLAGS_ARCH_${BUILD_BITS}_ALLOWED )
#if (${CXXFLAGS_ARCH_${BUILD_BITS}_ALLOWED})
set( CXXFLAGS_ARCH ${CXXFLAGS_ARCH_${BUILD_BITS}} )
#else()
# message( FATAL_ERROR "${BUILD_BITS} bits flag ${CXXFLAGS_ARCH_${BUILD_BITS}} not supported.")
#endif()
set( CXXFLAGS_C++11 ${CMAKE_CXX11_STANDARD_COMPILE_OPTION} )
if (NOT "" STREQUAL "${CXXFLAGS_C++${USE_C++}}" )
set( CXXFLAGS_C++ ${CXXFLAGS_C++${USE_C++}} )
endif()
#TODO solaris needs special flags https://docs.oracle.com/cd/E37069_01/html/E37075/bkamq.html#scrolltoc
set( CXXLDFLAGS_RUNTIME_C++11 -lstdc++ -lgcc_s -lCrunG3 -lc )
set( CXXLDFLAGS_RUNTIME ${CXXFLAGS_C++${USE_C++}} )
foreach(_D ${DEPENDENCIES})
add_subdirectory( ${_D} )
endforeach(_D)
set(sqlite-netFx_SHARED_LIB ${sqlite-netFx_SHARED_LIB} PARENT_SCOPE)