1 cmake_minimum_required(VERSION 3.9)
3 # Create the soil2 project
4 project("soil2" LANGUAGES C)
8 # Do we want to install the headers?
9 option(INSTALL_HEADERS "Install header files" ON)
12 set(INSTALL_CMAKE_DIR share/soil2)
14 # Set the source files to compile
16 src/SOIL2/etc1_utils.c
18 src/SOIL2/image_helper.c
22 # Set the soil2 headers
25 src/SOIL2/etc1_utils.h
27 src/SOIL2/image_helper.h
29 src/SOIL2/pkm_helper.h
30 src/SOIL2/pvr_helper.h
32 src/SOIL2/stb_image_write.h
39 # Add the library as a static linkage
40 add_library(soil2 STATIC ${SOIL2_SRC})
43 target_include_directories(soil2 INTERFACE $<INSTALL_INTERFACE:include>)
46 target_link_libraries(soil2 PRIVATE ${OPENGL_gl_LIBRARY})
48 # If its msvc mute the secure warnings
50 target_compile_definitions(soil2 PRIVATE _CRT_SECURE_NO_WARNINGS)
54 # Install the library object
55 install(TARGETS soil2 EXPORT soil2Targets
56 ARCHIVE DESTINATION lib
57 LIBRARY DESTINATION lib
61 install(FILES ${SOIL2_HEADERS}
62 DESTINATION include/SOIL2/)
64 # Prepare for install package files
65 set(SOIL2_VERSION "release-1.11")
68 export(TARGETS soil2 FILE "${PROJECT_BINARY_DIR}/soil2Targets.cmake")
71 # Create the soil2Config.cmake and soil2ConfigVersion.cmake
72 configure_file(soil2Config.cmake.in "${PROJECT_BINARY_DIR}/soil2Config.cmake" @ONLY)
73 configure_file(soil2ConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/soil2ConfigVersion.cmake" @ONLY)
75 # Install the soil2Config.cmake and soil2ConfigVersion.cmake
77 "${PROJECT_BINARY_DIR}/soil2Config.cmake"
78 "${PROJECT_BINARY_DIR}/soil2ConfigVersion.cmake"
79 DESTINATION "${INSTALL_CMAKE_DIR}"
82 # Install the export set for use with the install-tree
83 install(EXPORT soil2Targets DESTINATION "${INSTALL_CMAKE_DIR}")
85 # Install the library object
86 install(TARGETS soil2 EXPORT soil2
87 ARCHIVE DESTINATION lib
88 LIBRARY DESTINATION lib
90 endif(INSTALL_HEADERS)