Made topoms-cli and topoms-ui compile under Ubuntu 18.04.1LTS
Made a new CMakeLists.txt. This evolved over many many iterations and probably has quite a few unnecessary parts.
====
------------------------------------------------------------------------------
CMake file for TopoMS
------------------------------------------------------------------------------
cmake_minimum_required(VERSION 3.9)
message(STATUS "> configuring TopoMS in (" ${CMAKE_CURRENT_SOURCE_DIR} ")")
project(TopoMS LANGUAGES CXX VERSION 1.1 DESCRIPTION "TopoMS") set(CMAKE_BUILD_TYPE Release)
#set(CMAKE_VERBOSE_MAKEFILE 1)
------------------------------------------------------------------------------
compiler configuration
#if(NOT CMAKE_COMPILER_IS_GNUCXX)
message(FATAL_ERROR "TopoMS requires a GNU compiler. CMake will fail.")
#endif()
Compiler flags
set(CMAKE_CXX_FLAGS "-O3 -I/usr/include/GL/ ") ## Optimize set(CMAKE_CXX_FLAGS "-std=c++0x -fpermissive -w ")
set(CMAKE_SHARED_LINKER_FLAGS "-s -lstdc++ -lGL -lQt5Xml -lQt5Designer") ## Strip binary #set(CMAKE_SHARED_LINKER_FLAGS "-s -lc++ ") ## Strip binary set(CMAKE_EXE_LINKER_FLAGS "-s -lstdc++ -lGL -lQt5Xml -lQt5Designer") ## Strip binary #set(CMAKE_EXE_LINKER_FLAGS "-s -lc++ ") ## Strip binary #-lc++ for Apple
------------------------------------------------------------------------------
subdirectories
set(PATH_EXT ${CMAKE_CURRENT_SOURCE_DIR}/external) set(PATH_MSC ${CMAKE_CURRENT_SOURCE_DIR}/msc) set(PATH_TOPOMS ${CMAKE_CURRENT_SOURCE_DIR}/topoms) set(PATH_CLI ${CMAKE_CURRENT_SOURCE_DIR}/topoms-cli) set(PATH_UI ${CMAKE_CURRENT_SOURCE_DIR}/topoms-ui)
#message(STATUS " > PATH_MSC: " ${PATH_MSC}) #message(STATUS " > PATH_TOPOMS: " ${PATH_TOPOMS}) #message(STATUS " > PATH_CLI: " ${PATH_CLI}) #message(STATUS " > PATH_UI: " ${PATH_UI})
target names
set(TRG_LIB topoms) set(TRG_CLI topoms-cli) set(TRG_UI topoms-ui)
------------------------------------------------------------------------------
OpenMP
#find_package(OpenMP REQUIRED)
#message(STATUS "OpenMP_CXX_FLAGS: " ${OpenMP_CXX_FLAGS}) #message(STATUS "OpenMP_EXE_LINKER_FLAGS: " ${OpenMP_EXE_LINKER_FLAGS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -fopenmp -DGL_GLEXT_PROTOTYPES -DUSE_GLEW -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/GL/ ") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS} -lgomp -lGL -lQt5OpenGL -lGLEW -lQt5Xml -lQt5Core -lQt5Designer ")
------------------------------------------------------------------------------
VTK
find_package(VTK 7.1 HINTS ${PATH_EXT}/lib/cmake/vtk-7.1)
if(VTK_FOUND) message(STATUS "Found VTK " ${VTK_VERSION} ": " ${VTK_INCLUDE_DIRS}) include(${VTK_USE_FILE}) add_definitions(-DUSE_VTK=TRUE) endif(VTK_FOUND)
------------------------------------------------------------------------------
TopoMS
add_subdirectory(topoms) add_subdirectory(topoms-cli)
OPTION(TOPOMS_BUILD_UI "Build User Interface" OFF) if(TOPOMS_BUILD_UI) add_subdirectory(topoms-ui) endif()
------------------------------------------------------------------------------
also had to manually edit the path to one of the libqt5 3D dynamic libraries into one of the build files to make QGL viewer, and hence topoms-ui, finish the linking process to give a 'topoms-ui' executable.
Hi Steven,
Thanks for sharing this! I am also struggling to compile on Ubuntu. I was wondering if you might triple-quote your comment (```) to make it easier to copy the CMakeList, and also clarify what other packages you had to installed to get this to work?
I'm still getting the following error on 18.04:
Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS OpenMP_CXX_LIB_NAMES)