@@ -20,7 +20,7 @@ _userver_prepare_sql()
2020
2121function (userver_add_sql_library TARGET )
2222 set (OPTIONS)
23- set (ONE_VALUE_ARGS OUTPUT_DIR NAMESPACE QUERY_LOG_MODE)
23+ set (ONE_VALUE_ARGS SOURCE_DIR OUTPUT_DIR NAMESPACE QUERY_LOG_MODE)
2424 set (MULTI_VALUE_ARGS SQL_FILES)
2525 cmake_parse_arguments (ARG "${OPTIONS} " "${ONE_VALUE_ARGS} " "${MULTI_VALUE_ARGS} " ${ARGN} )
2626 if (NOT ARG_NAMESPACE)
@@ -30,12 +30,19 @@ function(userver_add_sql_library TARGET)
3030 set (ARG_QUERY_LOG_MODE "full" )
3131 endif ()
3232 set (FILENAME "sql_queries" )
33+ if (NOT ARG_SOURCE_DIR )
34+ set (ARG_SOURCE_DIR "." )
35+ endif ()
36+ if (NOT IS_ABSOLUTE "${ARG_SOURCE_DIR} " )
37+ set (ARG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR} /${ARG_SOURCE_DIR} " )
38+ endif ()
3339
3440 set (SQL_FILES)
3541 foreach (WILDCARD ${ARG_SQL_FILES} )
36- file (GLOB FILES ${ WILDCARD} )
42+ file (GLOB_RECURSE FILES RELATIVE ${ARG_SOURCE_DIR} " ${ARG_SOURCE_DIR} / ${ WILDCARD}" )
3743 list (APPEND SQL_FILES ${FILES} )
3844 endforeach ()
45+ list (TRANSFORM SQL_FILES PREPEND "${ARG_SOURCE_DIR} /" )
3946
4047 get_property (USERVER_SQL_PYTHON_BINARY GLOBAL PROPERTY userver_sql_python_binary )
4148 get_property (USERVER_SQL_SCRIPTS_PATH GLOBAL PROPERTY userver_scripts_sql )
@@ -50,7 +57,8 @@ function(userver_add_sql_library TARGET)
5057 OUTPUT ${output_files}
5158 COMMAND
5259 ${USERVER_SQL_PYTHON_BINARY} ${USERVER_SQL_SCRIPTS_PATH} /generator.py --namespace ${ARG_NAMESPACE}
53- --output-dir ${ARG_OUTPUT_DIR} --query-log-mode ${ARG_QUERY_LOG_MODE} --testsuite-output-dir
60+ --source-dir ${ARG_SOURCE_DIR} --output-dir ${ARG_OUTPUT_DIR}
61+ --query-log-mode ${ARG_QUERY_LOG_MODE} --testsuite-output-dir
5462 ${TESTSUITE_OUTPUT_DIR} ${SQL_FILES} ${CODEGEN}
5563 DEPENDS ${SQL_FILES}
5664 )
0 commit comments