mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-13 02:22:57 +01:00
122 lines
3.7 KiB
CMake
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)
|
|
|