|
3 | 3 |
|
4 | 4 | include( ${SC_CMAKE_DIR}/schema_scanner/schemaScanner.cmake ) |
5 | 5 |
|
6 | | -MACRO(RELATIVE_PATH_TO_TOPLEVEL current_dir rel_path) |
7 | | - string(REPLACE "${SC_SOURCE_DIR}" "" subpath "${current_dir}") |
8 | | - string(REGEX REPLACE "^/" "" subpath "${subpath}") |
9 | | - string(LENGTH "${subpath}" PATH_LENGTH) |
10 | | - if(PATH_LENGTH GREATER 0) |
11 | | - set(${rel_path} "..") |
12 | | - get_filename_component(subpath "${subpath}" PATH) |
13 | | - string(LENGTH "${subpath}" PATH_LENGTH) |
14 | | - while(PATH_LENGTH GREATER 0) |
15 | | - set(${rel_path} "${${rel_path}}/..") |
16 | | - get_filename_component(subpath "${subpath}" PATH) |
17 | | - string(LENGTH "${subpath}" PATH_LENGTH) |
18 | | - endwhile(PATH_LENGTH GREATER 0) |
19 | | - endif(PATH_LENGTH GREATER 0) |
20 | | -ENDMACRO(RELATIVE_PATH_TO_TOPLEVEL current_dir rel_path) |
21 | | - |
22 | 6 | # This function runs fedex on one express file. The generated source goes in a dir |
23 | 7 | # in the build dir, and it is compiled into a library. A p21read executable is |
24 | 8 | # compiled and linked to the lib. p21read is used to test the lib. |
25 | 9 | FUNCTION(BUILD_A_SCHEMA SCHEMA_FILE) |
26 | | - if( EXISTS "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}" ) #is it a path relative to build dir? |
27 | | - set( SCHEMA_FILE "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}" ) |
28 | | - elseif( EXISTS "${SC_SOURCE_DIR}/data/${SCHEMA_FILE}" ) # path relative to STEPcode/data? |
29 | | - set( SCHEMA_FILE "${SC_SOURCE_DIR}/data/${SCHEMA_FILE}" ) |
30 | | - elseif( NOT EXISTS ${SCHEMA_FILE} ) # absolute path |
31 | | - message( FATAL_ERROR "Cannot find ${CMAKE_BINARY_DIR}/${SCHEMA_FILE} or ${SC_SOURCE_DIR}/data/${SCHEMA_FILE} or ${SCHEMA_FILE}" ) |
32 | | - endif() |
33 | 10 |
|
34 | | - if( IS_DIRECTORY ${SCHEMA_FILE} ) #if it is a dir, look for one .exp file inside |
35 | | - file(GLOB SCHEMA_FILE ${SCHEMA_FILE}/*.exp ) |
36 | | - endif() |
37 | | - |
38 | | - if( NOT EXISTS ${SCHEMA_FILE} ) |
39 | | - message(FATAL_ERROR "Expected one express file. Found '${SCHEMA_FILE}' instead.") |
40 | | - endif() |
41 | | - # file is now located |
| 11 | + # figure out an absolute path to the file |
| 12 | + LOCATE_SCHEMA( SCHEMA_FILE ) |
42 | 13 |
|
43 | 14 | # subproject name, output code location |
44 | 15 | get_filename_component( SCHEMA_SN ${SCHEMA_FILE} NAME ) |
|
0 commit comments