Added double variant of lib to CMakeLists.txt

This commit is contained in:
noma
2017-04-24 17:20:20 +02:00
parent 9d9e987c47
commit 9912bc5023

View File

@@ -6,6 +6,17 @@ cmake_minimum_required(VERSION 2.8.11)
set(TINYOBJLOADER_SOVERSION 1) set(TINYOBJLOADER_SOVERSION 1)
set(TINYOBJLOADER_VERSION 1.0.4) set(TINYOBJLOADER_VERSION 1.0.4)
#optional double precision support
option(TINYOBJLOADER_USE_DOUBLE "Build library with double precision instead of single (float)" OFF)
if(TINYOBJLOADER_USE_DOUBLE)
add_definitions(-DTINYOBJLOADER_USE_DOUBLE)
set(LIBRARY_NAME ${PROJECT_NAME}_double)
else()
set(LIBRARY_NAME ${PROJECT_NAME})
endif()
#Folder Shortcuts #Folder Shortcuts
set(TINYOBJLOADEREXAMPLES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/examples) set(TINYOBJLOADEREXAMPLES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/examples)
@@ -38,32 +49,32 @@ option(TINYOBJLOADER_BUILD_TEST_LOADER "Build Example Loader Application" OFF)
option(TINYOBJLOADER_COMPILATION_SHARED "Build as shared library" OFF) option(TINYOBJLOADER_COMPILATION_SHARED "Build as shared library" OFF)
if(TINYOBJLOADER_COMPILATION_SHARED) if(TINYOBJLOADER_COMPILATION_SHARED)
add_library(tinyobjloader SHARED ${tinyobjloader-Source}) add_library(${LIBRARY_NAME} SHARED ${tinyobjloader-Source})
set_target_properties(tinyobjloader PROPERTIES set_target_properties(${LIBRARY_NAME} PROPERTIES
SOVERSION ${TINYOBJLOADER_SOVERSION} SOVERSION ${TINYOBJLOADER_SOVERSION}
) )
else() else()
add_library(tinyobjloader STATIC ${tinyobjloader-Source}) add_library(${LIBRARY_NAME} STATIC ${tinyobjloader-Source})
endif() endif()
set_target_properties(tinyobjloader PROPERTIES VERSION ${TINYOBJLOADER_VERSION}) set_target_properties(${LIBRARY_NAME} PROPERTIES VERSION ${TINYOBJLOADER_VERSION})
target_include_directories(tinyobjloader INTERFACE target_include_directories(${LIBRARY_NAME} INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${TINYOBJLOADER_INCLUDE_DIR}> $<INSTALL_INTERFACE:${TINYOBJLOADER_INCLUDE_DIR}>
) )
export(TARGETS tinyobjloader FILE ${PROJECT_NAME}-targets.cmake) export(TARGETS ${LIBRARY_NAME} FILE ${PROJECT_NAME}-targets.cmake)
if(TINYOBJLOADER_BUILD_TEST_LOADER) if(TINYOBJLOADER_BUILD_TEST_LOADER)
add_executable(test_loader ${tinyobjloader-Example-Source}) add_executable(test_loader ${tinyobjloader-Example-Source})
target_link_libraries(test_loader tinyobjloader) target_link_libraries(test_loader ${LIBRARY_NAME})
endif() endif()
option(TINYOBJLOADER_BUILD_OBJ_STICHER "Build OBJ Sticher Application" OFF) option(TINYOBJLOADER_BUILD_OBJ_STICHER "Build OBJ Sticher Application" OFF)
if(TINYOBJLOADER_BUILD_OBJ_STICHER) if(TINYOBJLOADER_BUILD_OBJ_STICHER)
add_executable(obj_sticher ${tinyobjloader-examples-objsticher}) add_executable(obj_sticher ${tinyobjloader-examples-objsticher})
target_link_libraries(obj_sticher tinyobjloader) target_link_libraries(obj_sticher ${LIBRARY_NAME})
install(TARGETS install(TARGETS
obj_sticher obj_sticher
@@ -76,8 +87,8 @@ endif()
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
configure_package_config_file( configure_package_config_file(
tinyobjloader-config.cmake.in ${PROJECT_NAME}-config.cmake.in
tinyobjloader-config.cmake ${LIBRARY_NAME}-config.cmake
INSTALL_DESTINATION INSTALL_DESTINATION
${TINYOBJLOADER_CMAKE_DIR} ${TINYOBJLOADER_CMAKE_DIR}
PATH_VARS PATH_VARS
@@ -86,7 +97,7 @@ configure_package_config_file(
NO_CHECK_REQUIRED_COMPONENTS_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO
) )
write_basic_package_version_file(tinyobjloader-config-version.cmake write_basic_package_version_file(${LIBRARY_NAME}-config-version.cmake
VERSION VERSION
${TINYOBJLOADER_VERSION} ${TINYOBJLOADER_VERSION}
COMPATIBILITY COMPATIBILITY
@@ -94,11 +105,11 @@ write_basic_package_version_file(tinyobjloader-config-version.cmake
) )
#pkg-config file #pkg-config file
configure_file(tinyobjloader.pc.in tinyobjloader.pc @ONLY) configure_file(${PROJECT_NAME}.pc.in ${LIBRARY_NAME}.pc @ONLY)
#Installation #Installation
install(TARGETS install(TARGETS
tinyobjloader ${LIBRARY_NAME}
EXPORT ${PROJECT_NAME}-targets EXPORT ${PROJECT_NAME}-targets
DESTINATION DESTINATION
${TINYOBJLOADER_LIBRARY_DIR} ${TINYOBJLOADER_LIBRARY_DIR}
@@ -123,13 +134,13 @@ install(FILES
${TINYOBJLOADER_DOC_DIR} ${TINYOBJLOADER_DOC_DIR}
) )
install(FILES install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/tinyobjloader-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/tinyobjloader-config-version.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}-config-version.cmake"
DESTINATION DESTINATION
${TINYOBJLOADER_CMAKE_DIR} ${TINYOBJLOADER_CMAKE_DIR}
) )
install(FILES install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/tinyobjloader.pc" "${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}.pc"
DESTINATION DESTINATION
${TINYOBJLOADER_PKGCONFIG_DIR} ${TINYOBJLOADER_PKGCONFIG_DIR}
) )