cmake: dependant options for benchmarks, refactor
This commit is contained in:
parent
36a4fd281e
commit
5852b97b44
@ -19,6 +19,7 @@ include(CheckIncludeFiles)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckTypeSize)
|
||||
include(CMakeDependentOption)
|
||||
|
||||
project(gmio)
|
||||
set(GMIO_VERSION_MAJOR 0)
|
||||
@ -31,10 +32,13 @@ set(GMIO_VERSION
|
||||
option(GMIO_BUILD_STRICT_C90 "Build gmio library(and tests) with strict conformance to C90 standard" OFF)
|
||||
option(GMIO_BUILD_SHARED_LIBS "Build gmio as a shared library (DLL)" OFF)
|
||||
option(GMIO_BUILD_BENCHMARKS "Build performance benchmarks for the gmio library" OFF)
|
||||
if(GMIO_BUILD_BENCHMARKS)
|
||||
option(GMIO_BUILD_BENCHMARK_ASSIMP "Build benchmark for Assimp" ON)
|
||||
option(GMIO_BUILD_BENCHMARK_OPENCASCADE "Build benchmark for OpenCascade" ON)
|
||||
endif()
|
||||
cmake_dependent_option(
|
||||
GMIO_BUILD_BENCHMARK_ASSIMP "Build benchmark for Assimp" ON
|
||||
"GMIO_BUILD_BENCHMARKS" OFF)
|
||||
cmake_dependent_option(
|
||||
GMIO_BUILD_BENCHMARK_OPENCASCADE "Build benchmark for OpenCascade" ON
|
||||
"GMIO_BUILD_BENCHMARKS" OFF)
|
||||
option(GMIO_BUILD_TESTS_FAKE_SUPPORT "Build tests/fake_support target" OFF)
|
||||
|
||||
# Detect Clang
|
||||
if (CMAKE_C_COMPILER MATCHES ".*clang")
|
||||
|
@ -13,10 +13,9 @@
|
||||
## "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html".
|
||||
#############################################################################
|
||||
|
||||
set(ASSIMP_DIR ${CMAKE_SOURCE_DIR} CACHE PATH "Directory where the Assimp library resides")
|
||||
set(OPENCASCADE_DIR ${CMAKE_SOURCE_DIR} CACHE PATH "Directory where the OpenCascade library resides")
|
||||
set(ROOTDIR_ASSIMP ${CMAKE_SOURCE_DIR} CACHE PATH "Directory where the Assimp library resides")
|
||||
set(ROOTDIR_OPENCASCADE ${CMAKE_SOURCE_DIR} CACHE PATH "Directory where the OpenCascade library resides")
|
||||
|
||||
# List source files in commons/
|
||||
file(GLOB COMMONS_FILES commons/*)
|
||||
set(COMMONS_FILES ${COMMONS_FILES})
|
||||
|
||||
@ -52,14 +51,18 @@ if(GMIO_BUILD_BENCHMARK_ASSIMP)
|
||||
# Note: we could use target_include_directories() but it's available in cmake > v2.8.10
|
||||
set_property(
|
||||
TARGET benchmark_assimp
|
||||
APPEND PROPERTY INCLUDE_DIRECTORIES ${ASSIMP_DIR}/include)
|
||||
# Libs
|
||||
find_library(LIBPATH_ASSIMP assimp ${ASSIMP_DIR}/lib64)
|
||||
target_link_libraries(benchmark_assimp ${LIBPATH_ASSIMP})
|
||||
APPEND PROPERTY INCLUDE_DIRECTORIES ${ROOTDIR_ASSIMP}/include)
|
||||
|
||||
# TODO: choose lib32/lib64 depending on the architecture
|
||||
find_library(
|
||||
LIB_ASSIMP assimp ${ROOTDIR_ASSIMP}/lib64
|
||||
DOC "Path to the assimp import library")
|
||||
target_link_libraries(benchmark_assimp ${LIB_ASSIMP})
|
||||
endif()
|
||||
|
||||
if(GMIO_BUILD_BENCHMARK_OPENCASCADE)
|
||||
add_executable(benchmark_opencascade
|
||||
add_executable(
|
||||
benchmark_opencascade
|
||||
benchmark_opencascade/main.cpp
|
||||
${CMAKE_SOURCE_DIR}/src/gmio_support/stl_occ.cpp
|
||||
${COMMONS_FILES})
|
||||
@ -84,24 +87,32 @@ if(GMIO_BUILD_BENCHMARK_OPENCASCADE)
|
||||
# Note: we could use target_include_directories() but it's available in cmake > v2.8.10
|
||||
set_property(
|
||||
TARGET benchmark_opencascade
|
||||
APPEND PROPERTY INCLUDE_DIRECTORIES ${OPENCASCADE_DIR}/inc)
|
||||
APPEND PROPERTY INCLUDE_DIRECTORIES ${ROOTDIR_OPENCASCADE}/inc)
|
||||
|
||||
# Libs
|
||||
if(MSVC)
|
||||
set(_MSVC_VERNUM_ 0) # Init
|
||||
get_msvc_vernum(_MSVC_VERNUM_)
|
||||
set(OPENCASCADE_LIBDIR ${OPENCASCADE_DIR}/win64/vc${_MSVC_VERNUM_}/lib)
|
||||
# TODO: choose win32/win64 depending on the architecture
|
||||
set(LIBDIR_OPENCASCADE ${ROOTDIR_OPENCASCADE}/win64/vc${_MSVC_VERNUM_}/lib)
|
||||
elseif((${CMAKE_SYSTEM_NAME} MATCHES "Linux") AND CMAKE_COMPILER_IS_GNUCXX)
|
||||
set(OPENCASCADE_LIBDIR ${OPENCASCADE_DIR}/lin64/gcc/lib)
|
||||
# TODO: choose lin32/lin64 depending on the architecture
|
||||
set(LIBDIR_OPENCASCADE ${ROOTDIR_OPENCASCADE}/lin64/gcc/lib)
|
||||
endif()
|
||||
message(STATUS ${OPENCASCADE_LIBDIR})
|
||||
#message(STATUS ${ROOTDIR_OPENCASCADE})
|
||||
|
||||
find_library(LIBPATH_OPENCASCADE_TKERNEL TKernel ${OPENCASCADE_LIBDIR})
|
||||
find_library(LIBPATH_OPENCASCADE_TKMATH TKMath ${OPENCASCADE_LIBDIR})
|
||||
find_library(LIBPATH_OPENCASCADE_TKSTL TKSTL ${OPENCASCADE_LIBDIR})
|
||||
find_library(
|
||||
LIB_OPENCASCADE_TKERNEL TKernel ${LIBDIR_OPENCASCADE}
|
||||
DOC "Path to the TKernel import library")
|
||||
find_library(
|
||||
LIB_OPENCASCADE_TKMATH TKMath ${LIBDIR_OPENCASCADE}
|
||||
DOC "Path to the TKMath import library")
|
||||
find_library(
|
||||
LIB_OPENCASCADE_TKSTL TKSTL ${LIBDIR_OPENCASCADE}
|
||||
DOC "Path to the TKSTL import library")
|
||||
target_link_libraries(
|
||||
benchmark_opencascade
|
||||
${LIBPATH_OPENCASCADE_TKERNEL}
|
||||
${LIBPATH_OPENCASCADE_TKMATH}
|
||||
${LIBPATH_OPENCASCADE_TKSTL})
|
||||
${LIB_OPENCASCADE_TKERNEL}
|
||||
${LIB_OPENCASCADE_TKMATH}
|
||||
${LIB_OPENCASCADE_TKSTL})
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user