cmake: refactoring

master
KoynovStas 2 years ago
parent dc62df2c54
commit 54b9e5cea3

@ -5,6 +5,12 @@ message(STATUS "Generator is set to: ${CMAKE_GENERATOR}")
#set(CMAKE_VERBOSE_MAKEFILE ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
message(STATUS "No CMAKE_BUILD_TYPE specified, force set to: ${CMAKE_BUILD_TYPE}")
endif()
set(DAEMON_NAME wsdd)
set(DAEMON_MAJOR_VERSION 3)
set(DAEMON_MINOR_VERSION 0)
@ -14,7 +20,7 @@ set(DAEMON_PATCH_VERSION patch)
set(DAEMON_PID_FILE_NAME ${DAEMON_NAME}.pid)
set(DAEMON_LOG_FILE_NAME ${DAEMON_NAME}.log)
set(DAEMON_NO_CHDIR 1)
set(DAEMON_NO_CLOSE_STDIO 0)
set(DAEMON_NO_CLOSE_STDIO $<STREQUAL:$<LOWER_CASE:${CMAKE_BUILD_TYPE}>,debug>) # 1 (NO_CLOSE if debug)
project(${DAEMON_NAME} LANGUAGES C)
@ -35,10 +41,13 @@ add_compile_options(
)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
message(STATUS "No CMAKE_BUILD_TYPE specified, force set to: ${CMAKE_BUILD_TYPE}")
endif()
add_compile_definitions(
DAEMON_NAME="${DAEMON_NAME}"
DAEMON_PID_FILE_NAME="${DAEMON_PID_FILE_NAME}"
DAEMON_LOG_FILE_NAME="${DAEMON_LOG_FILE_NAME}"
DAEMON_NO_CHDIR=${DAEMON_NO_CHDIR}
DAEMON_NO_CLOSE_STDIO=${DAEMON_NO_CLOSE_STDIO}
)
@ -59,32 +68,12 @@ endif()
add_compile_definitions(
DAEMON_NAME="${DAEMON_NAME}"
DAEMON_PID_FILE_NAME="${DAEMON_PID_FILE_NAME}"
DAEMON_LOG_FILE_NAME="${DAEMON_LOG_FILE_NAME}"
DAEMON_NO_CHDIR=${DAEMON_NO_CHDIR}
DAEMON_NO_CLOSE_STDIO=${DAEMON_NO_CLOSE_STDIO}
)
set(COMMON_DIR "${CMAKE_SOURCE_DIR}/src")
set(WSDL_DIR "${CMAKE_SOURCE_DIR}/wsdl")
set(GENERATED_DIR "${CMAKE_BINARY_DIR}/generated")
include_directories(
${COMMON_DIR}
${GENERATED_DIR}
${GSOAP_INCLUDE_DIR}
${GSOAP_PLUGIN_DIR}
${GSOAP_IMPORT_DIR}
)
set(SOAP_SOURCES
${GSOAP_PLUGIN_DIR}/wsaapi.c
${GSOAP_PLUGIN_DIR}/wsddapi.c
@ -138,6 +127,15 @@ set(HEADERS
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
target_include_directories(${PROJECT_NAME} PUBLIC
${COMMON_DIR}
${GENERATED_DIR}
${GSOAP_INCLUDE_DIR}
${GSOAP_PLUGIN_DIR}
${GSOAP_IMPORT_DIR}
)
#Create a cmake target that generate gsoap files
add_custom_command(
@ -163,17 +161,6 @@ add_custom_target(gsoap_generation
)
set_source_files_properties(
${GENERATED_DIR}/soapClient.c
${GENERATED_DIR}/soapC.c
${GENERATED_DIR}/soapH.h
${GENERATED_DIR}/soapStub.h
${GENERATED_DIR}/wsdd.h
${GENERATED_DIR}/version.h
PROPERTIES GENERATED TRUE
)
add_custom_target(generate_version ALL)
@ -193,6 +180,19 @@ add_custom_command(
add_dependencies(${PROJECT_NAME} generate_version)
set_source_files_properties(
${GENERATED_DIR}/soapClient.c
${GENERATED_DIR}/soapC.c
${GENERATED_DIR}/soapH.h
${GENERATED_DIR}/soapStub.h
${GENERATED_DIR}/wsdd.h
${GENERATED_DIR}/version.h
PROPERTIES GENERATED TRUE
)
if(USE_SYSTEM_GSOAP OR USE_GSOAP_STATIC_LIB)
target_link_libraries(${PROJECT_NAME} ${GSOAP_C_LIBRARY})
endif()

Loading…
Cancel
Save