144 lines
5.2 KiB
CMake
144 lines
5.2 KiB
CMake
IF(NOT KWSYS_NAMESPACE)
|
|
SET(KWSYS_NAMESPACE "kwsys")
|
|
SET(KWSYS_DEFAULTS 1)
|
|
ENDIF(NOT KWSYS_NAMESPACE)
|
|
|
|
PROJECT(${KWSYS_NAMESPACE})
|
|
INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFileCXX.cmake)
|
|
INCLUDE(${CMAKE_ROOT}/Modules/TestForSTDNamespace.cmake)
|
|
INCLUDE(${CMAKE_ROOT}/Modules/TestForANSIForScope.cmake)
|
|
CHECK_INCLUDE_FILE_CXX("sstream" CMAKE_HAS_ANSI_STRING_STREAM)
|
|
CHECK_INCLUDE_FILE_CXX("iosfwd" CMAKE_ANSI_IOSFWD_HEADER)
|
|
|
|
IF(NOT CMAKE_ANSI_IOSFWD_HEADER)
|
|
SET(CMAKE_NO_ANSI_STREAM_HEADERS 1)
|
|
ENDIF(NOT CMAKE_ANSI_IOSFWD_HEADER)
|
|
|
|
IF(NOT CMAKE_HAS_ANSI_STRING_STREAM)
|
|
SET(CMAKE_NO_ANSI_STRING_STREAM 1)
|
|
ENDIF(NOT CMAKE_HAS_ANSI_STRING_STREAM)
|
|
|
|
IF(KWSYS_FORCE_OLD_STREAMS)
|
|
SET(CMAKE_NO_ANSI_STREAM_HEADERS 1)
|
|
SET(CMAKE_NO_ANSI_STRING_STREAM 1)
|
|
ENDIF(KWSYS_FORCE_OLD_STREAMS)
|
|
|
|
SET(KWSYS_NO_STD_NAMESPACE ${CMAKE_NO_STD_NAMESPACE})
|
|
SET(KWSYS_NO_ANSI_STREAM_HEADERS ${CMAKE_NO_ANSI_STREAM_HEADERS})
|
|
SET(KWSYS_NO_ANSI_STRING_STREAM ${CMAKE_NO_ANSI_STRING_STREAM})
|
|
SET(KWSYS_NO_ANSI_FOR_SCOPE ${CMAKE_NO_ANSI_FOR_SCOPE})
|
|
|
|
IF(CMAKE_ANSI_CFLAGS)
|
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}")
|
|
ENDIF(CMAKE_ANSI_CFLAGS)
|
|
|
|
SET(CLASSES Directory RegularExpression SystemTools)
|
|
SET(H Process)
|
|
SET(HXX Configure)
|
|
|
|
IF(NOT UNIX)
|
|
ADD_EXECUTABLE(${KWSYS_NAMESPACE}ProcessFwd9x ProcessFwd9x.c)
|
|
ADD_EXECUTABLE(${KWSYS_NAMESPACE}EncodeExecutable EncodeExecutable.c)
|
|
SET(SRCS ProcessWin32.c ${CMAKE_CURRENT_BINARY_DIR}/${KWSYS_NAMESPACE}ProcessFwd9xEnc.c)
|
|
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/${KWSYS_NAMESPACE}ProcessFwd9xEnc.c
|
|
PROPERTIES GENERATED 1)
|
|
ELSE(NOT UNIX)
|
|
SET(SRCS ProcessUNIX.c)
|
|
ENDIF(NOT UNIX)
|
|
|
|
SET(KWSYS_INCLUDES)
|
|
FOREACH(c ${CLASSES})
|
|
SET(SRCS ${SRCS} ${c}.cxx)
|
|
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/${c}.hxx.in
|
|
${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/${c}.hxx
|
|
@ONLY IMMEDIATE)
|
|
SET(KWSYS_INCLUDES ${KWSYS_INCLUDES}
|
|
${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/${c}.hxx)
|
|
ENDFOREACH(c)
|
|
|
|
FOREACH(h ${H})
|
|
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/${h}.h.in
|
|
${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/${h}.h
|
|
@ONLY IMMEDIATE)
|
|
SET(KWSYS_INCLUDES ${KWSYS_INCLUDES}
|
|
${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/${h}.h)
|
|
ENDFOREACH(h)
|
|
|
|
FOREACH(h ${HXX})
|
|
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/${h}.hxx.in
|
|
${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/${h}.hxx
|
|
@ONLY IMMEDIATE)
|
|
SET(KWSYS_INCLUDES ${KWSYS_INCLUDES}
|
|
${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/${h}.hxx)
|
|
ENDFOREACH(h)
|
|
|
|
ADD_LIBRARY(${KWSYS_NAMESPACE} ${SRCS})
|
|
|
|
ADD_DEFINITIONS("-DKWSYS_NAMESPACE=${KWSYS_NAMESPACE}")
|
|
INCLUDE_DIRECTORIES(BEFORE ${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE})
|
|
|
|
IF(KWSYS_LIBRARY_INSTALL_DIR)
|
|
INSTALL_TARGETS(${KWSYS_LIBRARY_INSTALL_DIR} ${KWSYS_NAMESPACE})
|
|
ENDIF(KWSYS_LIBRARY_INSTALL_DIR)
|
|
|
|
IF(KWSYS_INCLUDE_INSTALL_DIR)
|
|
INSTALL_FILES(${KWSYS_INCLUDE_INSTALL_DIR}/${KWSYS_NAMESPACE}
|
|
FILES ${KWSYS_INCLUDES})
|
|
ENDIF(KWSYS_INCLUDE_INSTALL_DIR)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
# Create STL header wrappers to block warnings in the STL headers.
|
|
FOREACH(header algorithm deque iterator list map numeric queue set stack string
|
|
utility vector)
|
|
SET(KWSYS_STL_HEADER "${header}")
|
|
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_std.h.in
|
|
${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/std/${header}
|
|
@ONLY IMMEDIATE)
|
|
IF(KWSYS_INCLUDE_INSTALL_DIR)
|
|
INSTALL_FILES(${KWSYS_INCLUDE_INSTALL_DIR}/${KWSYS_NAMESPACE}
|
|
FILES ${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/std/${header})
|
|
ENDIF(KWSYS_INCLUDE_INSTALL_DIR)
|
|
ENDFOREACH(header)
|
|
|
|
FOREACH(header iostream fstream sstream iosfwd)
|
|
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_std_${header}.h.in
|
|
${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/std/${header}
|
|
@ONLY IMMEDIATE)
|
|
IF(KWSYS_INCLUDE_INSTALL_DIR)
|
|
INSTALL_FILES(${KWSYS_INCLUDE_INSTALL_DIR}/${KWSYS_NAMESPACE}
|
|
FILES ${PROJECT_BINARY_DIR}/../${KWSYS_NAMESPACE}/std/${header})
|
|
ENDIF(KWSYS_INCLUDE_INSTALL_DIR)
|
|
ENDFOREACH(header)
|
|
|
|
IF(KWSYS_DEFAULTS)
|
|
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/..)
|
|
ADD_EXECUTABLE(test1 test1.cxx)
|
|
TARGET_LINK_LIBRARIES(test1 ${KWSYS_NAMESPACE})
|
|
ENDIF(KWSYS_DEFAULTS)
|
|
|
|
IF(NOT UNIX)
|
|
SET(BIN_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
|
IF(EXECUTABLE_OUTPUT_PATH)
|
|
SET(BIN_DIR ${EXECUTABLE_OUTPUT_PATH})
|
|
ENDIF(EXECUTABLE_OUTPUT_PATH)
|
|
|
|
SET(MAKE_SYSTEM)
|
|
SET(CFG_INTDIR "/${CMAKE_CFG_INTDIR}")
|
|
IF(CMAKE_BUILD_TOOL MATCHES "make")
|
|
SET(CFG_INTDIR "")
|
|
ENDIF(CMAKE_BUILD_TOOL MATCHES "make")
|
|
|
|
SET(CMD ${BIN_DIR}${CFG_INTDIR}/${KWSYS_NAMESPACE}EncodeExecutable.exe)
|
|
SET(FWD ${BIN_DIR}${CFG_INTDIR}/${KWSYS_NAMESPACE}ProcessFwd9x.exe)
|
|
ADD_CUSTOM_COMMAND(
|
|
TARGET ${KWSYS_NAMESPACE}
|
|
SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/ProcessFwd9x.c
|
|
COMMAND ${CMD}
|
|
ARGS ${FWD} ${CMAKE_CURRENT_BINARY_DIR}/${KWSYS_NAMESPACE}ProcessFwd9xEnc.c
|
|
${KWSYS_NAMESPACE} ProcessFwd9x
|
|
OUTPUTS ${CMAKE_CURRENT_BINARY_DIR}/${KWSYS_NAMESPACE}ProcessFwd9xEnc.c
|
|
DEPENDS ${CMD} ${FWD})
|
|
ADD_DEPENDENCIES(${KWSYS_NAMESPACE} ${KWSYS_NAMESPACE}ProcessFwd9x
|
|
${KWSYS_NAMESPACE}EncodeExecutable)
|
|
ENDIF(NOT UNIX)
|