mirror of
				https://github.com/Telecominfraproject/wlan-cloud-lib-poco.git
				synced 2025-11-03 20:18:01 +00:00 
			
		
		
		
	QNX cmake var should set to 1, on command line, or in a toolchain file do not set _XOPEN_SOURCE macro when building for QNX set SYSLIBS cmake var (see: build/config/QNX:SYSFLAG) tested: Ubuntu 14.04, QNX 6.6.0, cmake 3.2.3
		
			
				
	
	
		
			123 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
# http://www.cmake.org/Wiki/CMake_Useful_Variables :
 | 
						|
# CMAKE_BUILD_TYPE
 | 
						|
#    Choose the type of build. CMake has default flags for these:
 | 
						|
#
 | 
						|
#    * None (CMAKE_C_FLAGS or CMAKE_CXX_FLAGS used)
 | 
						|
#    * Debug (CMAKE_C_FLAGS_DEBUG or CMAKE_CXX_FLAGS_DEBUG)
 | 
						|
#    * Release (CMAKE_C_FLAGS_RELEASE or CMAKE_CXX_FLAGS_RELEASE)
 | 
						|
#    * RelWithDebInfo (CMAKE_C_FLAGS_RELWITHDEBINFO or CMAKE_CXX_FLAGS_RELWITHDEBINFO
 | 
						|
#    * MinSizeRel (CMAKE_C_FLAGS_MINSIZEREL or CMAKE_CXX_FLAGS_MINSIZEREL)
 | 
						|
 | 
						|
# Setting CXX Flag /MD or /MT and POSTFIX values i.e MDd / MD / MTd / MT / d
 | 
						|
#
 | 
						|
# For visual studio the library naming is as following:
 | 
						|
#  Dynamic libraries:
 | 
						|
#   - PocoX.dll  for release library
 | 
						|
#   - PocoXd.dll for debug library
 | 
						|
#
 | 
						|
#  Static libraries:
 | 
						|
#   - PocoXmd.lib for /MD release build
 | 
						|
#   - PocoXtmt.lib for /MT release build
 | 
						|
#
 | 
						|
#   - PocoXmdd.lib for /MD debug build
 | 
						|
#   - PocoXmtd.lib for /MT debug build
 | 
						|
 | 
						|
if(MSVC)
 | 
						|
    if(POCO_MT)
 | 
						|
        set(CompilerFlags
 | 
						|
            CMAKE_CXX_FLAGS
 | 
						|
            CMAKE_CXX_FLAGS_DEBUG
 | 
						|
            CMAKE_CXX_FLAGS_RELEASE
 | 
						|
            CMAKE_C_FLAGS
 | 
						|
            CMAKE_C_FLAGS_DEBUG
 | 
						|
            CMAKE_C_FLAGS_RELEASE
 | 
						|
            )
 | 
						|
        foreach(CompilerFlag ${CompilerFlags})
 | 
						|
            string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
 | 
						|
        endforeach()
 | 
						|
 | 
						|
        set(STATIC_POSTFIX "mt" CACHE STRING "Set static library postfix" FORCE)
 | 
						|
    else(POCO_MT)
 | 
						|
        set(STATIC_POSTFIX "md" CACHE STRING "Set static library postfix" FORCE)
 | 
						|
    endif(POCO_MT)
 | 
						|
      
 | 
						|
    if (ENABLE_MSVC_MP)
 | 
						|
      add_definitions(/MP)
 | 
						|
    endif()
 | 
						|
    
 | 
						|
else(MSVC)
 | 
						|
    # Other compilers then MSVC don't have a static STATIC_POSTFIX at the moment
 | 
						|
    set(STATIC_POSTFIX "" CACHE STRING "Set static library postfix" FORCE)
 | 
						|
endif(MSVC)
 | 
						|
 | 
						|
# Add a d postfix to the debug libraries
 | 
						|
if(POCO_STATIC)
 | 
						|
        set(CMAKE_DEBUG_POSTFIX "${STATIC_POSTFIX}d" CACHE STRING "Set Debug library postfix" FORCE)
 | 
						|
        set(CMAKE_RELEASE_POSTFIX "${STATIC_POSTFIX}" CACHE STRING "Set Release library postfix" FORCE)
 | 
						|
        set(CMAKE_MINSIZEREL_POSTFIX "${STATIC_POSTFIX}" CACHE STRING "Set MinSizeRel library postfix" FORCE)
 | 
						|
        set(CMAKE_RELWITHDEBINFO_POSTFIX "${STATIC_POSTFIX}d" CACHE STRING "Set RelWithDebInfo library postfix" FORCE)
 | 
						|
else(POCO_STATIC)
 | 
						|
        set(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Set Debug library postfix" FORCE)
 | 
						|
        set(CMAKE_RELEASE_POSTFIX "" CACHE STRING "Set Release library postfix" FORCE)
 | 
						|
        set(CMAKE_MINSIZEREL_POSTFIX "" CACHE STRING "Set MinSizeRel library postfix" FORCE)
 | 
						|
        set(CMAKE_RELWITHDEBINFO_POSTFIX "d" CACHE STRING "Set RelWithDebInfo library postfix" FORCE)
 | 
						|
endif()
 | 
						|
 | 
						|
 | 
						|
# OS Detection
 | 
						|
include(CheckTypeSize)
 | 
						|
find_package(Cygwin)
 | 
						|
 | 
						|
if(WIN32)
 | 
						|
  add_definitions( -DPOCO_OS_FAMILY_WINDOWS -DUNICODE -D_UNICODE -D__LCC__)  #__LCC__ define used by MySQL.h
 | 
						|
endif(WIN32)
 | 
						|
 | 
						|
if (UNIX AND NOT ANDROID )
 | 
						|
  add_definitions( -DPOCO_OS_FAMILY_UNIX )
 | 
						|
  # Standard 'must be' defines
 | 
						|
  if (APPLE)
 | 
						|
    add_definitions( -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64)
 | 
						|
    set(SYSLIBS  dl)
 | 
						|
  else (APPLE)
 | 
						|
    add_definitions( -D_REENTRANT -D_THREAD_SAFE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 )
 | 
						|
    if (QNX)
 | 
						|
      add_definitions( -DPOCO_HAVE_FD_POLL)
 | 
						|
      set(SYSLIBS  m socket)
 | 
						|
    else (QNX)
 | 
						|
      add_definitions( -D_XOPEN_SOURCE=500 -DPOCO_HAVE_FD_EPOLL)
 | 
						|
      set(SYSLIBS  pthread dl rt)
 | 
						|
    endif (QNX)
 | 
						|
  endif (APPLE)
 | 
						|
endif(UNIX AND NOT ANDROID )
 | 
						|
 | 
						|
if (CMAKE_SYSTEM MATCHES "SunOS")
 | 
						|
  add_definitions( -DPOCO_OS_FAMILY_UNIX )
 | 
						|
  # Standard 'must be' defines
 | 
						|
  add_definitions( -D_XOPEN_SOURCE=500 -D_REENTRANT -D_THREAD_SAFE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 )
 | 
						|
  set(SYSLIBS  pthread socket xnet nsl resolv rt dl)
 | 
						|
endif(CMAKE_SYSTEM MATCHES "SunOS")
 | 
						|
 | 
						|
if (CMAKE_COMPILER_IS_MINGW)
 | 
						|
  add_definitions(-DWC_NO_BEST_FIT_CHARS=0x400  -DPOCO_WIN32_UTF8)
 | 
						|
  add_definitions(-D_WIN32 -DMINGW32 -DWINVER=0x500 -DODBCVER=0x0300 -DPOCO_THREAD_STACK_SIZE)
 | 
						|
endif (CMAKE_COMPILER_IS_MINGW)
 | 
						|
 | 
						|
if (CYGWIN)
 | 
						|
#    add_definitions(-DWC_NO_BEST_FIT_CHARS=0x400  -DPOCO_WIN32_UTF8)
 | 
						|
endif (CYGWIN)
 | 
						|
 | 
						|
# SunPro C++
 | 
						|
if (${CMAKE_CXX_COMPILER_ID} MATCHES "SunPro")
 | 
						|
  add_definitions( -D_BSD_SOURCE -library=stlport4)
 | 
						|
endif (${CMAKE_CXX_COMPILER_ID} MATCHES "SunPro")
 | 
						|
 | 
						|
# iOS
 | 
						|
if (IOS)
 | 
						|
  add_definitions( -DPOCO_HAVE_IPv6 -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_STAT64 -DPOCO_NO_SHAREDLIBS -DPOCO_NO_NET_IFTYPES )
 | 
						|
endif(IOS)
 | 
						|
 | 
						|
#Android
 | 
						|
if (ANDROID)
 | 
						|
  add_definitions( -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY )
 | 
						|
endif(ANDROID)
 |