Open theoden8 opened 7 years ago
Using homebrew for linux (linuxbrew):
brew install mesa glew glfw3 clinfo pocl openal-soft jpeg-turbo libpng libtiff libsndfile assimp freetype
If something fails, try running brew install <package> --env=std
, if it still fails, brew install <package> --debug
Will install all the packages.
Next, check that your opencl implementation is OK by running clinfo
, and OpenGL by running glxinfo
. glxgears
will demonstrate that it works.
Next, change all non-working cmake find_package
entries to pkg-config like this:
cmake_minimum_required(VERSION 2.8.2)
project(frontend)
message("C++ Compiler ${CMAKE_CXX_COMPILER}")
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
message(FATAL_ERROR "GCC version must be at least 4.8 to support OpenMP")
endif()
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.8)
message(FATAL_ERROR "Clang version must be at least 3.8 to support OpenMP.")
endif()
else()
message(WARNING "You are using unsupported compiler, and will probably have to change the source code.")
endif()
add_compile_options(-std=c++1y)
set(exec planetarium)
file(GLOB SRCS ./*.cpp)
add_executable(${exec} ${SRCS})
set_property(TARGET ${exec} PROPERTY CXX_STANDARD 14)
find_package(PkgConfig)
#find_package(PNG16 REQUIRED)
pkg_search_module(PNG REQUIRED libpng16)
pkg_check_modules(LIBPNG libpng16 REQUIRED)
if(PNG_FOUND)
message("using ${PNG_LIBRARIES} ${PNG_INCLUDE_DIRS}")
include_directories(${PNG_INCLUDE_DIRS})
target_link_libraries(${exec} ${PNG_LIBRARIES})
else()
message(FATAL_ERROR "PNG not found")
endif(PNG_FOUND)
find_package(GLM REQUIRED)
if(GLM_FOUND)
message("using ${GLM_INCLUDE_DIRS}")
include_directories(${GLM_INCLUDE_DIRS})
else()
message(FATAL_ERROR "GLM not found")
endif(GLM_FOUND)
find_package(OpenGL REQUIRED)
if(OPENGL_FOUND)
message("using ${OPENGL_LIBRARIES} ${OPENGL_INCLUDE_DIRS}")
include_directories(${OPENGL_INCLUDE_DIRS})
target_link_libraries(${exec} ${OPENGL_LIBRARIES})
else()
message(FATAL_ERROR "OpenGL not found")
endif(OPENGL_FOUND)
#find_package(GLFW3 REQUIRED)
pkg_search_module(GLFW3 REQUIRED glfw3)
pkg_check_modules(GLFW3 glfw3 REQUIRED)
if(GLFW3_FOUND)
message("using ${GLFW3_LIBRARIES} ${GLFW3_INCLUDE_DIRS}")
include_directories(${GLFW3_INCLUDE_DIRS})
target_link_libraries(${exec} ${GLFW3_LIBRARIES})
else()
message(FATAL_ERROR "GLFW3 not found")
endif(GLFW3_FOUND)
find_package(GLEW REQUIRED)
if(GLEW_FOUND)
message("using ${GLEW_LIBRARIES} ${GLEW_INCLUDE_DIRS}")
include_directories(${GLEW_INCLUDE_DIRS})
target_link_libraries(${exec} ${GLEW_LIBRARIES})
else()
message(FATAL_ERROR "GLEW not found")
endif(GLEW_FOUND)
find_package(ASSIMP REQUIRED)
if(ASSIMP_FOUND)
message("using ${ASSIMP_LIBRARIES} ${ASSIMP_INCLUDE_DIRS}")
include_directories(${ASSIMP_INCLUDE_DIRS})
target_link_libraries(${exec} ${ASSIMP_LIBRARIES})
else()
message(FATAL_ERROR "ASSIMP not found")
endif(ASSIMP_FOUND)
find_package(Freetype REQUIRED)
if(FREETYPE_FOUND)
message("using ${FREETYPE_LIBRARIES} ${FREETYPE_INCLUDE_DIRS}")
include_directories(${FREETYPE_INCLUDE_DIRS})
target_link_libraries(${exec} ${FREETYPE_LIBRARIES})
else()
message(FATAL_ERROR "FREETYPE not found")
endif(FREETYPE_FOUND)
find_package(OpenAL REQUIRED)
if(OPENAL_FOUND)
message("using ${OPENAL_LIBRARY} ${OPENAL_INCLUDE_DIR}")
include_directories(${OPENAL_INCLUDE_DIR})
target_link_libraries(${exec} ${OPENAL_LIBRARY})
else()
message(FATAL_ERROR "OPENAL not found")
endif(OPENAL_FOUND)
pkg_search_module(JPEGTURBO REQUIRED libturbojpeg)
if(JPEGTURBO_FOUND)
message("using ${JPEGTURBO_LIBRARIES} ${JPEGTURBO_INCLUDE_DIRS}")
include_directories(${JPEGTURBO_INCLUDE_DIRS})
target_link_libraries(${exec} ${JPEGTURBO_LIBRARIES})
else()
find_package(JPEG REQUIRED)
if(JPEG_FOUND)
message("using ${JPEG_LIBRARY} ${JPEG_INCLUDE_DIR}")
include_directories(${JPEG_INCLUDE_DIR})
target_link_libraries(${exec} ${JPEG_LIBRARY})
else()
message(FATAL_ERROR "JPEG not found")
endif(JPEG_FOUND)
endif(JPEGTURBO_FOUND)
find_package(TIFF REQUIRED)
if(TIFF_FOUND)
message("using ${TIFF_LIBRARY} ${TIFF_INCLUDE_DIR}")
include_directories(${TIFF_INCLUDE_DIR})
target_link_libraries(${exec} ${TIFF_LIBRARY})
else()
message(FATAL_ERROR "TIFF not found")
endif(TIFF_FOUND)
#find_package(LibSndFile REQUIRED)
pkg_search_module(SNDFILE REQUIRED sndfile)
if(SNDFILE_FOUND)
message("using ${SNDFILE_LIBRARIES} ${SNDFILE_INCLUDE_DIRS}")
include_directories(${SNDFILE_INCLUDE_DIRS})
target_link_libraries(${exec} ${SNDFILE_LIBRARIES})
else()
message(FATAL_ERROR "SNDFILE not found")
endif(SNDFILE_FOUND)
#find_package(OpenMP REQUIRED)
#if(OPENMP_FOUND)
# message("using OpenMP")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
#endif(OPENMP_FOUND)
find_packagE(OpenCL REQUIRED)
if(OpenCL_FOUND)
message("using OpenCL")
include_directories(${OpenCL_INCLUDE_DIRS})
target_link_libraries(${exec} ${OpenCL_LIBRARIES})
else()
message(FATAL ERROR "OPENCL not found")
endif(OpenCL_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
It should compile with clang
:
export CXX=$(which clang++)
cmake . -DCMAKE_BUILD_TYPE=Debug
make
Need help finding a good fix for successfully building and running front-end on Fedora 24 as non-sudo user (#11).
Here's a bad one:
(See 6)
Go and link all
libsndfile.so.3.2.1 <- libsndfile.so.3.2 <- libsndfile.so.3 <- libsndfile.so
. For all shared libraries.Export the following:
glewInit()
, probably because the version oflibglew-dev
needs to be >2.