Fixing linux build

This commit is contained in:
Dynamitos
2020-03-17 02:41:33 +01:00
parent 7f1234aacf
commit 10f9b0989f
7 changed files with 57 additions and 30 deletions
+13 -2
View File
@@ -24,6 +24,11 @@ ENDIF()
set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_LIBS ON)
set(Boost_LIB_PREFIX lib) set(Boost_LIB_PREFIX lib)
set(Boost_USE_RELEASE_LIBS OFF) set(Boost_USE_RELEASE_LIBS OFF)
set(ENKITS_BUILD_EXAMPLES OFF CACHE BOOL "Build basic example applications" )
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "GLFW lib only" )
set(GLFW_BUILD_TESTS OFF CACHE BOOL "GLFW lib only" )
set(GLFW_BUILD_DOCS OFF CACHE BOOL "GLFW lib only" )
set(GLFW_BUILD_INSTALL OFF CACHE BOOL "GLFW lib only" )
if (USE_SUPERBUILD) if (USE_SUPERBUILD)
project (SUPERBUILD NONE) project (SUPERBUILD NONE)
@@ -35,10 +40,11 @@ else()
project (Seele) project (Seele)
endif() endif()
add_subdirectory(${GLFW_ROOT})
find_package(Vulkan REQUIRED) find_package(Vulkan REQUIRED)
find_package(Boost REQUIRED COMPONENTS serialization) find_package(Boost REQUIRED COMPONENTS serialization)
include_directories(${GLFW_INCLUDE_DIRS}) include_directories(${GLFW_ROOT}/include)
include_directories(${GLM_INCLUDE_DIRS}) include_directories(${GLM_INCLUDE_DIRS})
include_directories(${Vulkan_INCLUDE_DIR}) include_directories(${Vulkan_INCLUDE_DIR})
include_directories(${Boost_INCLUDE_DIRS}) include_directories(${Boost_INCLUDE_DIRS})
@@ -48,13 +54,18 @@ add_definitions(${GLM_DEFINITIONS})
add_definitions(${Vulkan_DEFINITIONS}) add_definitions(${Vulkan_DEFINITIONS})
add_definitions(${Boost_DEFINITIONS}) add_definitions(${Boost_DEFINITIONS})
add_compile_definitions(GLFW_WINDOWS) add_compile_definitions(GLFW_WINDOWS)
if(WIN32)
add_compile_definitions(USE_EXTENSIONS)
endif()
add_executable(SeeleEngine "") add_executable(SeeleEngine "")
add_subdirectory(src/) add_subdirectory(src/)
target_link_libraries(SeeleEngine ${Boost_LIBRARIES}) target_link_libraries(SeeleEngine ${Boost_LIBRARIES})
target_link_libraries(SeeleEngine ${Vulkan_LIBRARY}) target_link_libraries(SeeleEngine ${Vulkan_LIBRARY})
target_link_libraries(SeeleEngine ${GLFW_LIBRARY}) target_link_libraries(SeeleEngine glfw ${GLFW_LIBRARIES})
target_link_libraries(SeeleEngine ${SLANG_LIBRARY}) target_link_libraries(SeeleEngine ${SLANG_LIBRARY})
message(Libs: ${GLFW_LIBRARIES})
add_subdirectory(test/) add_subdirectory(test/)
add_custom_command(TARGET SeeleEngine POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEPENDENT_BINARIES} $<TARGET_FILE_DIR:SeeleEngine>) add_custom_command(TARGET SeeleEngine POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEPENDENT_BINARIES} $<TARGET_FILE_DIR:SeeleEngine>)
+4 -4
View File
@@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
rm -rf bin/ rm -rf bin/Debug
mkdir bin/ mkdir bin/Debug
cd bin/ cd bin/Debug
cmake .. -DCMAKE_BUILD_TYPE=Debug cmake ../.. -DCMAKE_BUILD_TYPE=Debug
make make
+26 -19
View File
@@ -38,21 +38,21 @@ list(APPEND EXTRA_CMAKE_ARGS
#--------------GLFW------------------------------ #--------------GLFW------------------------------
list(APPEND DEPENDENCIES glfw) #list(APPEND DEPENDENCIES glfw)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) #set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) #set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) #set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
#
ExternalProject_Add(glfw #ExternalProject_Add(glfw
SOURCE_DIR ${GLFW_ROOT} # SOURCE_DIR ${GLFW_ROOT}
BINARY_DIR ${CMAKE_BINARY_DIR}/lib # BINARY_DIR ${CMAKE_BINARY_DIR}/lib
INSTALL_COMMAND "") # INSTALL_COMMAND "")
#
list(APPEND EXTRA_CMAKE_ARGS #list(APPEND EXTRA_CMAKE_ARGS
-DGLFW_INCLUDE_DIRS=${GLFW_ROOT}/include # -DGLFW_INCLUDE_DIRS=${GLFW_ROOT}/include
-DGLFW_LIBRARY=${CMAKE_BINARY_DIR}/lib/src/glfw3.lib # -DGLFW_LIBRARY=${CMAKE_BINARY_DIR}/lib/src/glfw3.lib
) # )
#
#--------------SLang------------------------------ #--------------SLang------------------------------
list(APPEND DEPENDENCIES slang) list(APPEND DEPENDENCIES slang)
ExternalProject_Add(slang ExternalProject_Add(slang
@@ -64,13 +64,20 @@ ExternalProject_Add(slang
# COMMAND msbuild -m /p:WindowsTargetPlatformVersion=10.0 ${SLANG_ROOT}/source/slang/slang.vcxproj # COMMAND msbuild -m /p:WindowsTargetPlatformVersion=10.0 ${SLANG_ROOT}/source/slang/slang.vcxproj
INSTALL_COMMAND "") INSTALL_COMMAND "")
if(WIN32)
string(TOLOWER bin/windows-x64/${CMAKE_BUILD_TYPE}/slang.dll SLANG_BINARY)
string(TOLOWER bin/windows-x64/${CMAKE_BUILD_TYPE}/slang.lib SLANG_LIB_PATH)
set(SLANG_LIB_PATH ${SLANG_ROOT}/${SLANG_LIB_PATH})
elseif(UNIX)
string(TOLOWER bin/linux-x86/${CMAKE_BUILD_TYPE}/libslang.so SLANG_BINARY)
set(SLANG_LIB_PATH)
endif()
list(APPEND EXTRA_CMAKE_ARGS list(APPEND EXTRA_CMAKE_ARGS
-DSLANG_INCLUDE_DIRS=${EXTERNAL_ROOT} -DSLANG_INCLUDE_DIRS=${EXTERNAL_ROOT}
-DSLANG_LIBRARY=${SLANG_ROOT}/bin/windows-x64/${CMAKE_BUILD_TYPE}/slang.lib) -DSLANG_LIBRARY=${SLANG_LIB_PATH})
set(SLANG_DLL) list(APPEND DEPENDENT_BINARIES ${SLANG_ROOT}/${SLANG_BINARY})
string(TOLOWER bin/windows-x64/${CMAKE_BUILD_TYPE}/slang.dll SLANG_DLL)
list(APPEND DEPENDENT_BINARIES ${SLANG_ROOT}/${SLANG_DLL})
list(APPEND EXTRA_CMAKE_ARGS list(APPEND EXTRA_CMAKE_ARGS
-DDEPENDENT_BINARIES=${DEPENDENT_BINARIES}) -DDEPENDENT_BINARIES=${DEPENDENT_BINARIES})
@@ -28,10 +28,12 @@ VkDescriptorType Seele::cast(const SeDescriptorType& descriptorType)
return VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC; return VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;
case SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT: case SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
return VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT; return VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT;
#ifdef USE_EXTENSIONS
case SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT: case SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT:
return VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT; return VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT;
case SE_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV: case SE_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:
return VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV; return VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV;
#endif
default: default:
break; break;
} }
@@ -65,10 +67,12 @@ SeDescriptorType Seele::cast(const VkDescriptorType& descriptorType)
return SE_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC; return SE_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;
case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT: case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
return SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT; return SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT;
#ifdef USE_EXTENSIONS
case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT: case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT:
return SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT; return SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT;
case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV: case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:
return SE_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV; return SE_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV;
#endif
default: default:
break; break;
} }
@@ -96,6 +100,7 @@ VkShaderStageFlagBits Seele::cast(const SeShaderStageFlagBits& stage)
return VK_SHADER_STAGE_ALL_GRAPHICS; return VK_SHADER_STAGE_ALL_GRAPHICS;
case SE_SHADER_STAGE_ALL: case SE_SHADER_STAGE_ALL:
return VK_SHADER_STAGE_ALL; return VK_SHADER_STAGE_ALL;
#ifdef USE_EXTENSIONS
case SE_SHADER_STAGE_RAYGEN_BIT_NV: case SE_SHADER_STAGE_RAYGEN_BIT_NV:
return VK_SHADER_STAGE_RAYGEN_BIT_NV; return VK_SHADER_STAGE_RAYGEN_BIT_NV;
case SE_SHADER_STAGE_ANY_HIT_BIT_NV: case SE_SHADER_STAGE_ANY_HIT_BIT_NV:
@@ -112,6 +117,7 @@ VkShaderStageFlagBits Seele::cast(const SeShaderStageFlagBits& stage)
return VK_SHADER_STAGE_TASK_BIT_NV; return VK_SHADER_STAGE_TASK_BIT_NV;
case SE_SHADER_STAGE_MESH_BIT_NV: case SE_SHADER_STAGE_MESH_BIT_NV:
return VK_SHADER_STAGE_MESH_BIT_NV; return VK_SHADER_STAGE_MESH_BIT_NV;
#endif
default: default:
break; break;
} }
@@ -138,6 +144,7 @@ SeShaderStageFlagBits Seele::cast(const VkShaderStageFlagBits& stage)
return SE_SHADER_STAGE_ALL_GRAPHICS; return SE_SHADER_STAGE_ALL_GRAPHICS;
case VK_SHADER_STAGE_ALL: case VK_SHADER_STAGE_ALL:
return SE_SHADER_STAGE_ALL; return SE_SHADER_STAGE_ALL;
#ifdef USE_EXTENSIONS
case VK_SHADER_STAGE_RAYGEN_BIT_NV: case VK_SHADER_STAGE_RAYGEN_BIT_NV:
return SE_SHADER_STAGE_RAYGEN_BIT_NV; return SE_SHADER_STAGE_RAYGEN_BIT_NV;
case VK_SHADER_STAGE_ANY_HIT_BIT_NV: case VK_SHADER_STAGE_ANY_HIT_BIT_NV:
@@ -154,6 +161,7 @@ SeShaderStageFlagBits Seele::cast(const VkShaderStageFlagBits& stage)
return SE_SHADER_STAGE_TASK_BIT_NV; return SE_SHADER_STAGE_TASK_BIT_NV;
case VK_SHADER_STAGE_MESH_BIT_NV: case VK_SHADER_STAGE_MESH_BIT_NV:
return SE_SHADER_STAGE_MESH_BIT_NV; return SE_SHADER_STAGE_MESH_BIT_NV;
#endif
default: default:
break; break;
} }
@@ -741,7 +741,7 @@ VkPipelineShaderStageCreateInfo Seele::init::PipelineShaderStageCreateInfo(VkSha
} }
VkBool32 __stdcall Seele::debugCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objType, uint64_t obj, size_t location, int32_t code, const char* layerPrefix, const char* msg, void* userDataManager) { VkBool32 Seele::debugCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objType, uint64_t obj, size_t location, int32_t code, const char* layerPrefix, const char* msg, void* userDataManager) {
std::cerr << layerPrefix << ": " << msg << std::endl; std::cerr << layerPrefix << ": " << msg << std::endl;
return VK_FALSE; return VK_FALSE;
} }
@@ -3,7 +3,7 @@
namespace Seele namespace Seele
{ {
VkBool32 __stdcall debugCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objType, uint64_t obj, size_t location, int32_t code, const char* layerPrefix, const char* msg, void* userData); VkBool32 debugCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objType, uint64_t obj, size_t location, int32_t code, const char* layerPrefix, const char* msg, void* userData);
VkResult CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); VkResult CreateDebugReportCallbackEXT(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
void DestroyDebugReportCallbackEXT(VkInstance instance, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT pCallback); void DestroyDebugReportCallbackEXT(VkInstance instance, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT pCallback);
+1
View File
@@ -3,6 +3,7 @@
#include <assert.h> #include <assert.h>
#include <memory> #include <memory>
#include <atomic> #include <atomic>
#include <cstring>
#include <iostream> #include <iostream>
#include "Math/Math.h" #include "Math/Math.h"