Skip to content

Commit d4ae03a

Browse files
author
Vano
committed
Sync with 1c77f4f
1 parent 3e239e2 commit d4ae03a

File tree

2 files changed

+45
-65
lines changed

2 files changed

+45
-65
lines changed

godot_cppscript.cmake

Lines changed: 43 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
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

57
if(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

196197
else()
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})
16751652
endfunction()
16761653

1654+
16771655
endif()

godot_cppscript.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#!/usr/bin/env python3
2+
# THIS FILE IS AUTO-GENERATED
3+
# See `https://github.com/IvanInventor/godot-cppscript/tree/next` for proper source
24

35
import sys
46

0 commit comments

Comments
 (0)