| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #! /bin/bash
- TARGET_FILE=$1
- SRC_LIST=$(for i in ${LIB_SRCS}; do
- echo ${i}|${SED} "s:${TOP_DIR}: \${PROJECT_SOURCE_DIR}:g"
- done)
- DIR_LIST=$(for i in ${LIB_SRCS}; do
- dirname ${i}|sed "s:${TOP_DIR}/*::g"
- done|sort -u)
- MOD_NAME=$(echo ${MODULE_NAME}|sed 's:/:_:g')
- rm -f ${TARGET_FILE}
- cat << EOB >> ${TARGET_FILE}
- $(for i in ${INTERNAL_INCLUDES} ${EXTERNAL_INCLUDES}; do
- if grep -q "$(basename ${OUTPUT_DIR})/usr/include" <<< "${i}"; then
- continue;
- fi
- echo $i \
- | ${SED} "s:-I${TOP_DIR}\(.*\):INCLUDE_DIRECTORIES (\${PROJECT_SOURCE_DIR}\1):g"
- done)
- EOB
- if echo ${CMAKE_EXPORT_LIBS} | grep -qw ${MODULE_NAME}; then
- TYPE="SHARED"
- else
- TYPE="OBJECT"
- fi
- if [ "${LIBA_TARGET}" != "" ]; then
- LNAME=${LIBA_TARGET#lib}
- LNAME=${LNAME%.a}
- cat << EOB >> ${TARGET_FILE}
- FILE (GLOB ${MOD_NAME}_SRCS
- $(for i in ${DIR_LIST}; do echo " \${PROJECT_SOURCE_DIR}/${i}/*.c"; done)
- )
- ADD_LIBRARY (${LNAME} ${TYPE}
- \${${MOD_NAME}_SRCS}
- \${EXTRA_C_SOURCES}
- )
- EOB
- fi
- #
- # We do NOT compose ADD_TARGET and TARGET_LINK_LIBRARY segment for those
- #
- if grep -qw "${MODULE_NAME}" <<< "${NOEXEC_CMAKE_DIRS}"; then
- exit 0
- fi
- TARGET_COUNT=$(echo "${TARGET}" | awk '{ print NF }')
- if (( TARGET_COUNT == 1 )); then
- if grep -qw ${TARGET} <<< ${WIN32_CMAKE_SKIP}; then
- echo "IF (NOT WIN32)" >> ${TARGET_FILE}
- fi
- cat << EOB >> ${TARGET_FILE}
- ADD_EXECUTABLE (${TARGET}
- $(for i in ${SRCS}; do
- echo ${i} | ${SED} "s:${TOP_DIR}: \${PROJECT_SOURCE_DIR}:g"
- done)
- )
- $(for i in \
- $(echo ${LDFLAGS} | grep -o '\-l[^ ]*' | sort -u | sed 's:^-l::g'); do
- if [ "${i}" = "pthread" -o "${i}" = "rt" ]; then echo "IF (NOT MSVC)"; fi
- echo "TARGET_LINK_LIBRARIES (${TARGET} ${i})"
- if [ "${i}" = "pthread" -o "${i}" = "rt" ]; then echo "ENDIF (NOT MSVC)"; fi
- done)
- EOB
- if grep -qw ${TARGET} <<< ${WIN32_CMAKE_SKIP}; then
- echo "ENDIF (NOT WIN32)" >> ${TARGET_FILE}
- fi
- echo "" >> ${TARGET_FILE}
- fi
- if (( TARGET_COUNT > 1 )); then
- cat << EOB >> ${TARGET_FILE}
- $(for i in ${TARGET}; do
- if echo ${WIN32_CMAKE_SKIP} | grep -qw ${i}; then
- echo "IF (NOT WIN32)"
- fi
- echo "ADD_EXECUTABLE (${i}"
- j=${i//-/_}
- k=$(eval echo '${''SRCS_'"${j}"'}')
- for v in ${k}; do
- echo " ${v}"
- done
- echo ")"
- if echo ${WIN32_CMAKE_SKIP} | grep -qw ${i}; then
- echo "ENDIF (NOT WIN32)"
- fi
- done)
- $(for i in ${TARGET}; do
- if echo ${WIN32_CMAKE_SKIP} | grep -qw ${i}; then
- echo "IF (NOT WIN32)"
- fi
- echo "TARGET_LINK_LIBRARIES (${i} ${COMP_LIB_NAME})"
- for j in $(echo ${LDFLAGS} | grep -o '\-l[^ ]*' | sort -u | sed 's:^-l::g' | grep -vw ${COMP_LIB_NAME}); do
- if [ "${j}" = "pthread" -o "${j}" = "rt" ]; then echo "IF (NOT MSVC)"; fi
- echo "TARGET_LINK_LIBRARIES (${i} ${j})"
- if [ "${j}" = "pthread" -o "${j}" = "rt" ]; then echo "ENDIF (NOT MSVC)"; fi
- done
- if echo ${WIN32_CMAKE_SKIP} | grep -qw ${i}; then
- echo "ENDIF (NOT WIN32)"
- fi
- echo ""
- done)
- SET (EXECUTABLE_OUTPUT_PATH ../out)
- EOB
- fi
|