poco/contrib/cmake/CMakeLists.txt
2012-04-29 18:52:25 +00:00

122 lines
3.7 KiB
CMake

PROJECT (FTPTest)
SET (EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH
"Single output directory for building all executables.")
SET( TARGET_BASE_NAME "${PROJECT_NAME}" )
SET( LIB_NAME "${TARGET_BASE_NAME}Lib" )
#-----------------------------------------------------------------------------
# Let's use the highest warning level.
#-----------------------------------------------------------------------------
IF(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake)")
# Use the highest warning level for visual studio.
IF(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
STRING(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
ELSE(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
ENDIF(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
IF(CMAKE_C_FLAGS MATCHES "/W[0-4]")
STRING(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
ELSE(CMAKE_C_FLAGS MATCHES "/W[0-4]")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4")
ENDIF(CMAKE_C_FLAGS MATCHES "/W[0-4]")
# Disable deprecation warnings for standard C functions in VS2005 and later
IF(CMAKE_COMPILER_2005)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
ENDIF(CMAKE_COMPILER_2005)
ENDIF(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake)")
IF(CMAKE_BUILD_TOOL MATCHES "make")
IF(NOT CMAKE_CXX_FLAGS MATCHES "-Wall")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
ENDIF(NOT CMAKE_CXX_FLAGS MATCHES "-Wall")
IF(NOT CMAKE_C_FLAGS MATCHES "-Wall")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
ENDIF(NOT CMAKE_C_FLAGS MATCHES "-Wall")
ENDIF(CMAKE_BUILD_TOOL MATCHES "make")
SET(Poco_DIR ${PROJECT_SOURCE_DIR})
FIND_PACKAGE(Poco REQUIRED)
IF(${Poco_FOUND})
INCLUDE_DIRECTORIES(${Poco_INCLUDE_DIRS})
LINK_DIRECTORIES(${Poco_LIBRARY_DIRS})
ENDIF(WIN32)
ENDIF(${Poco_FOUND})
#-----------------------------------------------------------------------------
SET( EXE_NAME "${TARGET_BASE_NAME}" )
# Add any source files here.
SET( EXE_SRCS
"My File.cpp"
)
# Add any include files here.
SET( EXE_INCS
"My File.h"
)
#-----------------------------------------------------------------------------
# The executable.
ADD_EXECUTABLE(${EXE_NAME} ${EXE_SRCS} ${EXE_INCS})
TARGET_LINK_LIBRARIES ( ${EXE_NAME}
"optimized" CppUnit
"debug" CppUnitd
"optimized" PocoFoundation
"debug" PocoFoundationd
"optimized" PocoNet
"debug" PocoNetd
"optimized" PocoUtil
"debug" PocoUtild
"optimized" PocoXML
"debug" PocoXMLd
)
# Copy the DLLS to where the executable is.
# Only do this if you haven't set your path to the Poco DLLs.
IF(WIN32)
SET ( DLL_FILES_DEBUG
${Poco_BINARY_DIRS}/CppUnitd.dll
${Poco_BINARY_DIRS}/PocoFoundationd.dll
${Poco_BINARY_DIRS}/PocoNetd.dll
${Poco_BINARY_DIRS}/PocoUtild.dll
${Poco_BINARY_DIRS}/PocoXMLd.dll
)
SET ( DLL_FILES_RELEASE
${Poco_BINARY_DIRS}/CppUnit.dll
${Poco_BINARY_DIRS}/PocoFoundation.dll
${Poco_BINARY_DIRS}/PocoNet.dll
${Poco_BINARY_DIRS}/PocoUtil.dll
${Poco_BINARY_DIRS}/PocoXML.dll
)
# Copy these files to the build tree.
ADD_CUSTOM_TARGET(CopyDll ALL echo "Copying dlls ...")
FOREACH(file ${DLL_FILES_DEBUG})
GET_FILENAME_COMPONENT(fn ${file} NAME)
SET(tgt ${EXECUTABLE_OUTPUT_PATH}/Debug/${fn})
SET(src ${file})
ADD_CUSTOM_COMMAND(
TARGET CopyDll
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${src} ${tgt}
COMMENT "Source copy of dlls"
)
ENDFOREACH(file)
FOREACH(file ${DLL_FILES_RELEASE})
GET_FILENAME_COMPONENT(fn ${file} NAME)
SET(tgt ${EXECUTABLE_OUTPUT_PATH}/Release/${fn})
SET(src ${file})
ADD_CUSTOM_COMMAND(
TARGET CopyDll
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${src} ${tgt}
COMMENT "Source copy of dlls"
)
ENDFOREACH(file)
ENDIF(WIN32)