@@ -28,18 +28,23 @@ function(cm_project INPUT_WORKSPACE_NAME INPUT_PROJECT_NAME)
2828 endif ()
2929
3030 project (${INPUT_WORKSPACE_NAME} _${INPUT_PROJECT_NAME} ${PARSE_VERSION} ${PARSE_DESCRIPTION} ${PARSE_LANGUAGES} )
31+
3132 set (CURRENT_PROJECT_NAME ${INPUT_PROJECT_NAME} )
3233 set (CMAKE_PROJECT_NAME ${CMAKE_PROJECT_NAME} PARENT_SCOPE)
3334 set (PROJECT_NAME ${INPUT_PROJECT_NAME} PARENT_SCOPE)
35+
3436 string (TOUPPER ${INPUT_PROJECT_NAME} UPPER_PROJECT_NAME)
3537 set (CURRENT_UPPER_PROJECT_NAME ${UPPER_PROJECT_NAME} PARENT_SCOPE)
36- set_current_source_dir(${CMAKE_CURRENT_SOURCE_DIR} CURRENT_SOURCES_DIR)
38+
39+ file (RELATIVE_PATH RELATIVE_DIR ${CMAKE_WORKSPACE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} )
40+
41+ set (CURRENT_SOURCES_DIR ${CMAKE_WORKSPACE_SOURCES_DIR} /${RELATIVE_DIR} )
3742 set (CURRENT_TEST_SOURCES_DIR ${CURRENT_SOURCES_DIR} /test PARENT_SCOPE)
3843endfunction ()
3944
4045function (cm_workspace WORKSPACE_NAME)
4146 set (options )
42- set (oneValueArgs DESCRIPTION VERSION )
47+ set (oneValueArgs DESCRIPTION VERSION SOURCES_DIR )
4348 set (multiValueArgs LANGUAGES)
4449
4550 cmake_parse_arguments (PARSE "${options} " "${oneValueArgs} " "${multiValueArgs} " ${ARGN} )
@@ -50,8 +55,13 @@ function(cm_workspace WORKSPACE_NAME)
5055
5156 project (${WORKSPACE_NAME} ${PARSE_VERSION} ${PARSE_DESCRIPTION} ${PARSE_LANGUAGES} )
5257 set (CMAKE_WORKSPACE_NAME ${WORKSPACE_NAME} PARENT_SCOPE)
58+ set (CMAKE_WORKSPACE_DIR ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE)
5359 string (TOUPPER ${WORKSPACE_NAME} UPPER_WORKSPACE_NAME)
5460 set (CMAKE_UPPER_WORKSPACE_NAME ${UPPER_WORKSPACE_NAME} PARENT_SCOPE)
61+
62+ if (PARSE_SOURCES_DIR)
63+ set (CMAKE_WORKSPACE_SOURCES_DIR ${PARSE_SOURCES_DIR} PARENT_SCOPE)
64+ endif ()
5565endfunction ()
5666
5767function (patch_file INPUT_SOURCE INPUT_PATCH OUTPUT_DIRECTORY)
@@ -75,12 +85,7 @@ function(patch_directory SOURCES_DIRECTORY PATCHES_DIRECTORY OUTPUT_DIRECTORY)
7585 endif ()
7686 file (GLOB_RECURSE PATCHES_FILES LIST_DIRECTORIES FALSE ${PATCHES_DIRECTORY} /*.patch)
7787 file (GLOB_RECURSE SOURCES_FILES LIST_DIRECTORIES FALSE ${SOURCES_DIRECTORY} /*)
78- message (PTCH = ${PATCHES_DIRECTORY} )
79- message (SRC = ${SOURCES_DIRECTORY} )
8088 foreach (PATCH_FILE IN LISTS PATCHES_FILES)
81- #get_filename_component(PATHC_FILE_NAME ${PATCH_FILE} NAME)
82- #message("SOURCES_DIRECTORY=" ${SOURCES_DIRECTORY})
83- #message("PATHC_FILE_NAME=" ${PATCHES_DIRECTORY})
8489 string (REPLACE ".patch" "" SOURCE_FILE_NAME ${PATCH_FILE} )
8590 string (REPLACE ${PATCHES_DIRECTORY} ${SOURCES_DIRECTORY} SOURCE_FILE_NAME ${SOURCE_FILE_NAME} )
8691
@@ -91,9 +96,4 @@ function(patch_directory SOURCES_DIRECTORY PATCHES_DIRECTORY OUTPUT_DIRECTORY)
9196 list (GET SOURCES_FILES ${SOURCES_FILE_FIND} SOURCE_FILE)
9297 patch_file(${SOURCE_FILE} ${PATCH_FILE} ${OUTPUT_DIRECTORY} )
9398 endforeach ()
94- endfunction ()
95-
96- function (set_current_source_dir WORKSPACE_SOURCE RESULT_NAME)
97- string (REPLACE "/libs" "/${BUILD_WITH_SOURCES_DIR} /libs" CURRENT_SOURCES_DIR ${WORKSPACE_SOURCE} )
98- set (${RESULT_NAME} ${CURRENT_SOURCES_DIR} PARENT_SCOPE)
9999endfunction ()
0 commit comments