1- cmake_minimum_required (VERSION 3.6)
1+ # THIS FILE IS AUTO-GENERATED
2+ # See `https://github.com/IvanInventor/godot-cppscript/tree/next` for proper source
3+ cmake_minimum_required (VERSION 3.12.4)
24
3- find_package (Python3 3.4 REQUIRED)
5+ find_package (Python3 3.10 REQUIRED)
46
57if (CMAKE_SCRIPT_MODE_FILE )
68 # Ran as configure script
@@ -182,16 +184,15 @@ exit(0)
182184 list (APPEND ARGS "${CMAKE_ARGV${i} }" )
183185 endforeach ()
184186
185- set (SCRIPT_PATH "${CMAKE_CURRENT_SOURCE_DIR} /.configure_script.py.tmp" )
186- file (WRITE ${SCRIPT_PATH} "${PY_CONFIGURE_SCRIPT} " )
187187 execute_process (
188188 COMMAND
189189 "${Python3_EXECUTABLE} "
190- "${SCRIPT_PATH} "
190+ "-c"
191+ "${PY_CONFIGURE_SCRIPT} "
191192 ${ARGS}
192193 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
193194 )
194- file (REMOVE ${SCRIPT_PATH} )
195+
195196
196197else ()
197198
@@ -1577,11 +1578,7 @@ if __name__ == \"__main__\":
15771578 'gen_dir' : args.gen_dir[0],
15781579 'compile_defs' : set(args.definitions),
15791580 'include_paths' : set(args.include_paths),
1580- 'auto_methods' : args.auto_methods,
1581- 'code_format' : code_format_godot_cpp()
1582- if os.getenv(\" CPPSCRIPT_NO_CONSTEXPR_CHECKS\" , False)
1583- else code_format_cppscript_constexr_checks()
1584-
1581+ 'auto_methods' : args.auto_methods
15851582 }
15861583
15871584 sys.exit(generate_header_cmake(args.sources, env))
@@ -1590,88 +1587,69 @@ if __name__ == \"__main__\":
15901587)
15911588
15921589
1593- #TODO: make it work in parallel
1594- function (create_cppscript_target)
1595- set (options AUTO_METHODS)
1596- set (oneValueArgs HEADER_NAME HEADERS_DIR GEN_DIR OUTPUT_SOURCES)
1597- set (multiValueArgs HEADERS_LIST COMPILE_DEFS INCLUDE_PATHS)
1598- cmake_parse_arguments (CPPS "${options} " "${oneValueArgs} " "${multiValueArgs} " ${ARGN} )
1599-
1600- # Handle required args and empty/NOTFOUND lists
1601- if (NOT CPPS_HEADER_NAME)
1602- message (FATAL_ERROR "Header name is required argument (for example: `HEADER_NAME project_name.h`)" )
1603- endif ()
1590+ #TODO: script path is changed to generated one
1591+ set (CMAKE_CURRENT_FUNCTION_LIST_DIR ${CMAKE_CURRENT_LIST_DIR} )
16041592
1605- if (NOT CPPS_HEADERS_DIR)
1606- message (FATAL_ERROR "Headers directory is required argument (for example: `HEADERS_DIR \$ {CMAKE_CURRENT_SOURCE_DIR}/include`)" )
1593+ #TODO: make it work in parallel
1594+ function (create_cppscript_target TARGET_NAME HEADERS_LIST HEADER_NAME HEADERS_DIR GEN_DIR AUTO_METHODS COMPILE_DEFS INCLUDE_PATHS)
1595+ #TODO: cmake_parse_args
1596+ # Handle empty/NOTFOUND lists
1597+ if (NOT INCLUDE_PATHS)
1598+ set (INCLUDE_PATHS "" )
16071599 endif ()
1608-
1609- if (NOT CPPS_OUTPUT_SOURCES)
1610- message (FATAL_ERROR "Output sources is required argument (for example: `OUTPUT_SOURCES GEN_SOURCES`)" )
1600+ if (NOT COMPILE_DEFS)
1601+ set (COMPILE_DEFS "" )
16111602 endif ()
16121603
1613- if (NOT CPPS_GEN_DIR)
1614- set (CPPS_GEN_DIR "${CMAKE_CURRENT_BINARY_DIR} /.cppscript.gen" )
1615- endif ()
1616-
1617- if (NOT CPPS_HEADERS_LIST)
1618- set (CPPS_HEADERS_LIST "" )
1619- endif ()
1620-
1621- if (NOT CPPS_COMPILE_DEFS)
1622- set (CPPS_COMPILE_DEFS "" )
1623- endif ()
1624-
1625- if (NOT CPPS_INCLUDE_PATHS)
1626- set (CPPS_INCLUDE_PATHS "" )
1627- endif ()
16281604
1629- if (CPPS_AUTO_METHODS )
1605+ if (${AUTO_METHODS} )
16301606 set (AUTO_METHODS_STR "True" )
16311607 else ()
16321608 set (AUTO_METHODS_STR "False" )
16331609 endif ()
16341610
16351611 # Generate python script and headers
16361612 set (GODOT_CPPSCRIPT_PY_SCRIPT_PATH "${CMAKE_CURRENT_BINARY_DIR} /cppscript.py" )
1637- set (GODOT_CPPSCRIPT_DEFS_H_PATH "${CPPS_HEADERS_DIR } /cppscript_defs.h" )
1638- set (GODOT_CPPSCRIPT_BINDINGS_H_PATH "${CPPS_HEADERS_DIR } /cppscript_bindings.h" )
1613+ set (GODOT_CPPSCRIPT_DEFS_H_PATH "${HEADERS_DIR } /cppscript_defs.h" )
1614+ set (GODOT_CPPSCRIPT_BINDINGS_H_PATH "${HEADERS_DIR } /cppscript_bindings.h" )
16391615
16401616 file (WRITE "${GODOT_CPPSCRIPT_PY_SCRIPT_PATH} " "${CPPSCRIPT_EMBED_PY_SCRIPT} " )
16411617 file (WRITE "${GODOT_CPPSCRIPT_DEFS_H_PATH} " "${CPPSCRIPT_DEFS_H} " )
16421618 file (WRITE "${GODOT_CPPSCRIPT_BINDINGS_H_PATH} " "${CPPSCRIPT_BINDINGS_H} " )
1643-
1644- foreach (PATH ${CPPS_HEADERS_LIST} )
1645- file (RELATIVE_PATH PATH "${CPPS_HEADERS_DIR} " "${PATH} " )
1619+ foreach (PATH ${HEADERS_LIST} )
1620+ file (RELATIVE_PATH PATH "${HEADERS_DIR} " "${PATH} " )
16461621 string (REGEX REPLACE "\. [^./\\ ]+$" ".gen.cpp" relative_path "${PATH} " )
1647- list (APPEND SOURCES_LIST "${CPPS_GEN_DIR } /${relative_path} " )
1622+ list (APPEND SOURCES_LIST "${GEN_DIR } /${relative_path} " )
16481623 endforeach ()
16491624
16501625 add_custom_command (
16511626 OUTPUT
1652- ${CPPS_HEADERS_DIR } /${CPPS_HEADER_NAME }
1653- ${CPPS_HEADERS_DIR } /scripts.gen.h
1654- ${CPPS_HEADERS_DIR } /properties.gen.h
1627+ ${HEADERS_DIR } /${HEADER_NAME }
1628+ ${HEADERS_DIR } /scripts.gen.h
1629+ ${HEADERS_DIR } /properties.gen.h
16551630 ${SOURCES_LIST}
16561631
16571632 COMMAND
1658- ${Python3_EXECUTABLE} "${GODOT_CPPSCRIPT_PY_SCRIPT_PATH} "
1659- "--header-name" "${CPPS_HEADER_NAME } "
1660- "--header-dir" "${CPPS_HEADERS_DIR } "
1661- "--gen-dir" "${CPPS_GEN_DIR } "
1662- "--auto-methods" "${AUTO_METHODS_STR} "
1663- "--definitions" ${CPPS_COMPILE_DEFS }
1664- "--include-paths" ${CPPS_HEADERS_DIR} ${CPPS_INCLUDE_PATHS }
1665- "--"
1666- ${CPPS_HEADERS_LIST }
1667-
1668- DEPENDS ${CPPS_HEADERS_LIST }
1669- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR }
1633+ ${Python3_EXECUTABLE} "${CMAKE_CURRENT_FUNCTION_LIST_DIR} /cppscript_bindings.py "
1634+ "--header-name" "${HEADER_NAME } "
1635+ "--header-dir" "${HEADERS_DIR } "
1636+ "--gen-dir" "${GEN_DIR } "
1637+ "--auto-methods" "${AUTO_METHODS_STR} "
1638+ "--definitions" ${COMPILE_DEFS }
1639+ "--include-paths" ${CMAKE_CURRENT_FUNCTION_LIST_DIR} /src ${HEADERS_DIR} ${INCLUDE_PATHS }
1640+ "--"
1641+ ${HEADERS_LIST }
1642+
1643+ DEPENDS ${HEADERS_LIST }
1644+ WORKING_DIRECTORY ${CMAKE_CURRENT_FUNCTION_LIST_DIR }
16701645 VERBATIM
16711646 COMMAND_EXPAND_LISTS
16721647 COMMENT "Parsing header files..."
16731648 )
1674- set (${CPPS_OUTPUT_SOURCES} "${SOURCES_LIST} " PARENT_SCOPE)
1649+
1650+ target_sources (${TARGET_NAME} PRIVATE ${SOURCES_LIST} )
1651+ target_include_directories (${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_FUNCTION_LIST_DIR} /src ${HEADERS_DIR} )
16751652endfunction ()
16761653
1654+
16771655endif ()
0 commit comments