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_LIB_PREFIX lib)
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)
project (SUPERBUILD NONE)
@@ -35,10 +40,11 @@ else()
project (Seele)
endif()
add_subdirectory(${GLFW_ROOT})
find_package(Vulkan REQUIRED)
find_package(Boost REQUIRED COMPONENTS serialization)
include_directories(${GLFW_INCLUDE_DIRS})
include_directories(${GLFW_ROOT}/include)
include_directories(${GLM_INCLUDE_DIRS})
include_directories(${Vulkan_INCLUDE_DIR})
include_directories(${Boost_INCLUDE_DIRS})
@@ -48,13 +54,18 @@ add_definitions(${GLM_DEFINITIONS})
add_definitions(${Vulkan_DEFINITIONS})
add_definitions(${Boost_DEFINITIONS})
add_compile_definitions(GLFW_WINDOWS)
if(WIN32)
add_compile_definitions(USE_EXTENSIONS)
endif()
add_executable(SeeleEngine "")
add_subdirectory(src/)
target_link_libraries(SeeleEngine ${Boost_LIBRARIES})
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})
message(Libs: ${GLFW_LIBRARIES})
add_subdirectory(test/)
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
rm -rf bin/
mkdir bin/
cd bin/
cmake .. -DCMAKE_BUILD_TYPE=Debug
rm -rf bin/Debug
mkdir bin/Debug
cd bin/Debug
cmake ../.. -DCMAKE_BUILD_TYPE=Debug
make
+26 -19
View File
@@ -38,21 +38,21 @@ list(APPEND EXTRA_CMAKE_ARGS
#--------------GLFW------------------------------
list(APPEND DEPENDENCIES glfw)
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
ExternalProject_Add(glfw
SOURCE_DIR ${GLFW_ROOT}
BINARY_DIR ${CMAKE_BINARY_DIR}/lib
INSTALL_COMMAND "")
list(APPEND EXTRA_CMAKE_ARGS
-DGLFW_INCLUDE_DIRS=${GLFW_ROOT}/include
-DGLFW_LIBRARY=${CMAKE_BINARY_DIR}/lib/src/glfw3.lib
)
#list(APPEND DEPENDENCIES glfw)
#set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
#set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
#set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
#
#ExternalProject_Add(glfw
# SOURCE_DIR ${GLFW_ROOT}
# BINARY_DIR ${CMAKE_BINARY_DIR}/lib
# INSTALL_COMMAND "")
#
#list(APPEND EXTRA_CMAKE_ARGS
# -DGLFW_INCLUDE_DIRS=${GLFW_ROOT}/include
# -DGLFW_LIBRARY=${CMAKE_BINARY_DIR}/lib/src/glfw3.lib
# )
#
#--------------SLang------------------------------
list(APPEND DEPENDENCIES slang)
ExternalProject_Add(slang
@@ -64,13 +64,20 @@ ExternalProject_Add(slang
# COMMAND msbuild -m /p:WindowsTargetPlatformVersion=10.0 ${SLANG_ROOT}/source/slang/slang.vcxproj
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
-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)
string(TOLOWER bin/windows-x64/${CMAKE_BUILD_TYPE}/slang.dll SLANG_DLL)
list(APPEND DEPENDENT_BINARIES ${SLANG_ROOT}/${SLANG_DLL})
list(APPEND DEPENDENT_BINARIES ${SLANG_ROOT}/${SLANG_BINARY})
list(APPEND EXTRA_CMAKE_ARGS
-DDEPENDENT_BINARIES=${DEPENDENT_BINARIES})
@@ -28,10 +28,12 @@ VkDescriptorType Seele::cast(const SeDescriptorType& descriptorType)
return VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;
case SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
return VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT;
#ifdef USE_EXTENSIONS
case SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT:
return VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT;
case SE_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:
return VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV;
#endif
default:
break;
}
@@ -65,10 +67,12 @@ SeDescriptorType Seele::cast(const VkDescriptorType& descriptorType)
return SE_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;
case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
return SE_DESCRIPTOR_TYPE_INPUT_ATTACHMENT;
#ifdef USE_EXTENSIONS
case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT:
return SE_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT;
case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:
return SE_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV;
#endif
default:
break;
}
@@ -96,6 +100,7 @@ VkShaderStageFlagBits Seele::cast(const SeShaderStageFlagBits& stage)
return VK_SHADER_STAGE_ALL_GRAPHICS;
case SE_SHADER_STAGE_ALL:
return VK_SHADER_STAGE_ALL;
#ifdef USE_EXTENSIONS
case SE_SHADER_STAGE_RAYGEN_BIT_NV:
return VK_SHADER_STAGE_RAYGEN_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;
case SE_SHADER_STAGE_MESH_BIT_NV:
return VK_SHADER_STAGE_MESH_BIT_NV;
#endif
default:
break;
}
@@ -138,6 +144,7 @@ SeShaderStageFlagBits Seele::cast(const VkShaderStageFlagBits& stage)
return SE_SHADER_STAGE_ALL_GRAPHICS;
case VK_SHADER_STAGE_ALL:
return SE_SHADER_STAGE_ALL;
#ifdef USE_EXTENSIONS
case VK_SHADER_STAGE_RAYGEN_BIT_NV:
return SE_SHADER_STAGE_RAYGEN_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;
case VK_SHADER_STAGE_MESH_BIT_NV:
return SE_SHADER_STAGE_MESH_BIT_NV;
#endif
default:
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;
return VK_FALSE;
}
@@ -3,7 +3,7 @@
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);
void DestroyDebugReportCallbackEXT(VkInstance instance, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT pCallback);
+1
View File
@@ -3,6 +3,7 @@
#include <assert.h>
#include <memory>
#include <atomic>
#include <cstring>
#include <iostream>
#include "Math/Math.h"