CONGE-2 MADE THE MAC COMPILATION WORK

This commit is contained in:
Jimmy Tremblay-Bernier 2024-11-26 22:09:39 -05:00
parent 63d9eb1081
commit 2e2dd848f7
3 changed files with 34 additions and 17 deletions

View File

@ -22,7 +22,7 @@ namespace ConjureEngine {
std::string error = SDL_GetError();
if(!error.empty())
{
SDL_Log("Cleaned up with errors: %s", error);
SDL_Log("Cleaned up with errors: %s", error.c_str());
}
}

View File

@ -5,19 +5,34 @@ set(CMAKE_CXX_STANDARD 20)
find_package(Python3 REQUIRED COMPONENTS Interpreter)
set(SHADER_FILES
src/Shaders/Test.frag
src/Shaders/Test.vert
)
add_executable(${PROJECT_NAME} src/main.cpp
add_executable(${PROJECT_NAME}
src/main.cpp
src/Demo1.cpp
src/Demo1.h
)
# SHADERS
# STAMP FILE THAT TRACK THE CHANGES IN SHADERS
set(OUTPUT_SHADER_STAMP "${CMAKE_CURRENT_SOURCE_DIR}/src/Shaders/shaders.stamp")
# COMPILE SHADERS USING PYTHON
add_custom_command(
TARGET ${PROJECT_NAME}
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/CompileShaders.py ${CMAKE_CURRENT_SOURCE_DIR}/src/Shaders
OUTPUT ${OUTPUT_SHADER_STAMP}
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/CompileShaders.py ${CMAKE_CURRENT_SOURCE_DIR}/src/Shaders ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${SHADER_FILES}
COMMENT "Compiling shaders"
)
# CREATE CUSTOM TARGET THAT LINK THE COMMAND TO THE PROJECT
add_custom_target(shader_compilation DEPENDS ${OUTPUT_SHADER_STAMP})
# ADD THE CUSTOM TARGET AS A DEPENDENCY
add_dependencies(${PROJECT_NAME} shader_compilation)
target_link_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/ConjureEngine)
find_package(SDL2 REQUIRED)

View File

@ -7,24 +7,25 @@ os.chdir(sys.argv[1])
# Configure logging
logging.basicConfig(
filename=os.path.join("D:/Dev/ETS/CONJURE/conjure-engine/Demo1", "CompileShaders.log"), # Log file name
filename=os.path.join(sys.argv[2], "CompileShaders.log"), # Log file name
filemode="w", # Append mode (use "w" for overwrite)
format="%(asctime)s - %(levelname)s - %(message)s", # Log format
level=logging.INFO # Logging level
)
SHADERS_PATH = os.path.join(os.getcwd())
GLSLC_PATH = os.path.join(os.environ.get("VULKAN_SDK"), "bin", "glslc")
def filterFunc(fileName):
logging.info(fileName)
name, ext = fileName.split(".")
return ext != "spv"
params = fileName.split(".")
return params[len(params) - 1] != "spv"
def __main__():
logging.info("SHADER PATH: " + SHADERS_PATH)
logging.info("GLSLC PATH:" + GLSLC_PATH)
SHADERS_PATH = os.path.join(os.getcwd())
if os.name == "nt":
GLSLC_PATH = os.path.join(os.environ.get("VULKAN_SDK"), "bin", "glslc")
else:
GLSLC_PATH = "/usr/local/bin/glslc"
logging.info(str.join(" ", ["SHADER PATH:", SHADERS_PATH]))
logging.info(str.join(" ", ["GLSLC PATH:", GLSLC_PATH]))
shaders = filter(filterFunc, os.listdir(SHADERS_PATH))
for shader in shaders:
@ -37,7 +38,8 @@ def __main__():
os.path.join(SHADERS_PATH, name + "." + ext + ".spv")
]
logging.info(command + " " + str.join(" ", args))
subprocess.run(command + " " + str.join(" ", args))
logging.info(str.join(" ", ["Compiling:", shader]))
logging.info(str.join(" ", [command] + args))
subprocess.Popen([command] + args)
if __name__ == "__main__":
__main__()