244 lines
8.6 KiB
CMake
244 lines
8.6 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
if(CMP_HOST_WINDOWS)
|
|
# this must be before add_executable
|
|
link_directories(
|
|
${PROJECT_EXTERNAL_LIBDIR}/zlib/zlib-1.2.10/VS2015/x64/lib
|
|
${PROJECT_EXTERNAL_LIBDIR}/glew/1.9.0/lib/x64
|
|
${OpenCV_LIB_DIRS}
|
|
${PROJECT_EXTERNAL_LIBDIR}/opencv/2.49/x64/VS2015/lib
|
|
)
|
|
|
|
if (OPTION_BUILD_EXR)
|
|
link_directories(
|
|
${PROJECT_EXTERNAL_LIBDIR}/openexr/ilmbase-2.2.0/VS2015/x64/lib
|
|
${PROJECT_EXTERNAL_LIBDIR}/openexr/openexr-2.2.0/VS2015/x64/lib
|
|
)
|
|
endif()
|
|
|
|
# this must be before add_executable
|
|
if (OPTION_CMP_DIRECTX)
|
|
link_directories(
|
|
${PROJECT_EXTERNAL_LIBDIR}/directxtex/DirectXTex-jun2020b/DirectXTex/Bin/Desktop_2017/x64
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
add_executable(CompressonatorCLI-bin "")
|
|
|
|
|
|
# allow const char* -> char*
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
|
target_compile_options(CompressonatorCLI-bin
|
|
PRIVATE
|
|
"-Wno-c++11-compat-deprecated-writable-strings")
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
target_compile_options(CompressonatorCLI-bin
|
|
PRIVATE
|
|
"-Wno-write-strings")
|
|
endif()
|
|
|
|
target_compile_definitions(CompressonatorCLI-bin PUBLIC
|
|
-DUSE_WITH_COMMANDLINE_TOOL
|
|
# -DUSE_CMP_SDK
|
|
# -DUSE_AMD_PNG
|
|
)
|
|
|
|
file(GLOB_RECURSE RESOURCES
|
|
resources/*
|
|
)
|
|
|
|
if (OPTION_CMP_QT)
|
|
set (CLI_QTFILES
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/mipstoqimage.cpp
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/mipstoqimage.h
|
|
)
|
|
else()
|
|
set (CLI_QTFILES)
|
|
endif()
|
|
|
|
target_sources(CompressonatorCLI-bin
|
|
PRIVATE
|
|
${RESOURCES}
|
|
source/compressonatorcli.cpp
|
|
source/compressonatorcli_documentation.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/atiformats.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/atiformats.cpp
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/cmdline.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/cmdline.cpp
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/cmp_fileio.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/cmp_fileio.cpp
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/modeldata.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/modeldata.cpp
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/plugininterface.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/pluginmanager.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/pluginmanager.cpp
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/query_timer.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/query_timer.cpp
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/textureio.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/textureio.cpp
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/gltf/tiny_gltf2.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/gltf/tiny_gltf2_utils.h
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/gltf/tiny_gltf2_utils.cpp
|
|
${CLI_QTFILES}
|
|
)
|
|
|
|
target_include_directories(CompressonatorCLI-bin
|
|
PRIVATE
|
|
Source
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/common/json
|
|
${PROJECT_SOURCE_DIR}/applications/_plugins/cmesh/mesh_optimizer
|
|
${PROJECT_SOURCE_DIR}/applications/_libs/gpu_decode
|
|
${PROJECT_SOURCE_DIR}/applications/_libs/cmp_meshoptimizer
|
|
${PROJECT_SOURCE_DIR}/applications/_libs/cmp_math
|
|
${PROJECT_SOURCE_DIR}/cmp_compressonatorlib
|
|
${PROJECT_SOURCE_DIR}/cmp_framework/
|
|
${PROJECT_SOURCE_DIR}/cmp_framework/common/half
|
|
${PROJECT_SOURCE_DIR}/cmp_core/shaders
|
|
${PROJECT_SOURCE_DIR}/cmp_core/source
|
|
${PROJECT_SOURCE_DIR}/../common/lib/ext/glm
|
|
# ${PROJECT_SOURCE_DIR}/applications/_libs/cmp_meshcompressor/draco/src
|
|
# ${draco_INCLUDE_DIRS}
|
|
${OpenEXR_INCLUDE_DIRS}
|
|
)
|
|
|
|
if (OPTION_CMP_QT)
|
|
target_include_directories(CompressonatorCLI-bin
|
|
PRIVATE
|
|
${Qt5Gui_INCLUDE_DIRS}
|
|
)
|
|
endif()
|
|
|
|
if (OPTION_BUILD_EXR)
|
|
if (UNIX)
|
|
target_include_directories(CompressonatorCLI-bin
|
|
PRIVATE
|
|
/usr/local/include/OpenEXR/)
|
|
endif()
|
|
endif()
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
if (UNIX)
|
|
target_compile_definitions(CompressonatorCLI-bin PRIVATE _LINUX)
|
|
endif()
|
|
|
|
set (CMP_LIBS "")
|
|
list(APPEND CMP_LIBS CMP_Compressonator
|
|
CMP_Framework
|
|
# CMP_MeshCompressor
|
|
Image_Analysis
|
|
Image_ASTC
|
|
Image_KTX
|
|
Image_TGA
|
|
)
|
|
|
|
if (OPTION_BUILD_EXR)
|
|
list(APPEND CMP_LIBS Image_EXR)
|
|
endif()
|
|
|
|
if (UNIX)
|
|
if(NOT APPLE)
|
|
list(APPEND CMP_LIBS Threads::Threads
|
|
${OpenEXR_LIBRARIES})
|
|
else()
|
|
list(APPEND CMP_LIBS "/usr/lib/libz.dylib")
|
|
list(APPEND CMP_LIBS "/usr/local/lib/libHalf.dylib")
|
|
list(APPEND CMP_LIBS "/usr/local/lib/libImath.dylib")
|
|
list(APPEND CMP_LIBS "/usr/local/lib/libIlmThread.dylib")
|
|
list(APPEND CMP_LIBS "/usr/local/lib/libIex.dylib")
|
|
list(APPEND CMP_LIBS "/usr/local/lib/libIlmImf.dylib")
|
|
endif()
|
|
else()
|
|
if (OPTION_CMP_QT)
|
|
list(APPEND
|
|
CMP_LIBS
|
|
CMP_GpuDecode
|
|
Image_KTX2
|
|
ExtQt5
|
|
ExtQt5Widgets
|
|
)
|
|
else()
|
|
list(APPEND
|
|
CMP_LIBS
|
|
CMP_GpuDecode
|
|
Image_KTX2
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
list(APPEND CMP_LIBS ${OpenCV_LIBRARIES}
|
|
# ${draco_LIBRARIES}
|
|
)
|
|
|
|
if (OPTION_CMP_QT)
|
|
target_link_libraries(CompressonatorCLI-bin
|
|
${CMP_LIBS}
|
|
Qt5::Gui
|
|
)
|
|
else()
|
|
target_link_libraries(CompressonatorCLI-bin
|
|
${CMP_LIBS}
|
|
)
|
|
endif()
|
|
|
|
add_dependencies(CompressonatorCLI-bin
|
|
CMP_Compressonator
|
|
CMP_Framework
|
|
# CMP_MeshCompressor
|
|
Image_Analysis
|
|
Image_ASTC
|
|
Image_KTX
|
|
Image_TGA
|
|
)
|
|
|
|
if (OPTION_BUILD_EXR)
|
|
add_dependencies(CompressonatorCLI-bin Image_EXR)
|
|
endif()
|
|
|
|
if(CMP_HOST_WINDOWS)
|
|
include(copyfiles.cmake)
|
|
set_target_properties(CompressonatorCLI-bin PROPERTIES
|
|
WIN32_EXECUTABLE OFF #Build an executable with a WinMain entry point on windows.
|
|
VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:CompressonatorCLI-bin>
|
|
)
|
|
elseif(CMP_HOST_APPLE)
|
|
set_target_properties(CompressonatorCLI-bin PROPERTIES
|
|
LINK_FLAGS "-Wl,-F${CMAKE_OSX_SYSROOT}/System/Library/Frameworks,-v"
|
|
)
|
|
endif()
|
|
|
|
if(CMP_HOST_WINDOWS)
|
|
if (OPTION_CMP_QT)
|
|
set_target_properties(CompressonatorCLI-bin PROPERTIES
|
|
FOLDER "Applications"
|
|
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/bin/$(Configuration)"
|
|
AUTORCC ON
|
|
AUTOMOC ON
|
|
OUTPUT_NAME "compressonatorcli"
|
|
)
|
|
else()
|
|
set_target_properties(CompressonatorCLI-bin PROPERTIES
|
|
FOLDER "Applications"
|
|
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/bin/$(Configuration)"
|
|
OUTPUT_NAME "compressonatorcli"
|
|
)
|
|
endif()
|
|
else()
|
|
if (OPTION_CMP_QT)
|
|
set_target_properties(CompressonatorCLI-bin PROPERTIES
|
|
FOLDER "Applications"
|
|
AUTORCC ON
|
|
AUTOMOC ON
|
|
OUTPUT_NAME "compressonatorcli-bin"
|
|
)
|
|
else()
|
|
set_target_properties(CompressonatorCLI-bin PROPERTIES
|
|
FOLDER "Applications"
|
|
OUTPUT_NAME "compressonatorcli-bin"
|
|
)
|
|
endif()
|
|
endif()
|
|
|