Skip to content

Commit 651a5ff

Browse files
INSTALL target finally works!
1 parent 013abca commit 651a5ff

File tree

2 files changed

+94
-15
lines changed

2 files changed

+94
-15
lines changed

README.md

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,18 +331,60 @@ target_include_directories(${PROJECT_NAME}
331331
$<$<CONFIG:Debug>:${IRR_INSTALL_DIR}/debug/include>
332332
$<$<CONFIG:RelWithDebInfo>:${IRR_INSTALL_DIR}/relwithdebinfo/include>
333333
$<$<CONFIG:Release>:${IRR_INSTALL_DIR}/include>
334+
# these are needed because we haven't cleaned up the API properly yet
335+
$<$<CONFIG:Debug>:${IRR_INSTALL_DIR}/debug/source/Irrlicht>
336+
$<$<CONFIG:RelWithDebInfo>:${IRR_INSTALL_DIR}/relwithdebinfo/source/Irrlicht>
337+
$<$<CONFIG:Release>:${IRR_INSTALL_DIR}/source/Irrlicht>
334338
)
335-
target_link_libraries(${PROJECT_NAME} Qt5::Widgets Qt5::Core Qt5::Gui opengl32.lib)
336339
target_link_libraries(${PROJECT_NAME}
337340
$<$<CONFIG:Debug>:${IRR_INSTALL_DIR}/debug/lib/Irrlicht_debug.lib>
338341
$<$<CONFIG:RelWithDebInfo>:${IRR_INSTALL_DIR}/relwithdebinfo/lib/Irrlicht_rwdi.lib>
339342
$<$<CONFIG:Release>:${IRR_INSTALL_DIR}/lib/Irrlicht.lib>
340-
# these are needed because we haven't cleaned up the API properly yet
341-
$<$<CONFIG:Debug>:${IRR_INSTALL_DIR}/debug/source/Irrlicht>
342-
$<$<CONFIG:RelWithDebInfo>:${IRR_INSTALL_DIR}/relwithdebinfo/source/Irrlicht>
343-
$<$<CONFIG:Release>:${IRR_INSTALL_DIR}/source/Irrlicht>
344343
)
345-
344+
function(link_irr_dependency DEPENDENCY_NAME)
345+
target_link_libraries(${PROJECT_NAME}
346+
$<$<CONFIG:Debug>:${IRR_INSTALL_DIR}/debug/lib/${DEPENDENCY_NAME}d.lib>
347+
$<$<CONFIG:RelWithDebInfo>:${IRR_INSTALL_DIR}/relwithdebinfo/lib/${DEPENDENCY_NAME}.lib>
348+
$<$<CONFIG:Release>:${IRR_INSTALL_DIR}/lib/${DEPENDENCY_NAME}.lib>
349+
)
350+
endfunction()
351+
function(link_irr_dependency_ DEPENDENCY_NAME)
352+
target_link_libraries(${PROJECT_NAME}
353+
$<$<CONFIG:Debug>:${IRR_INSTALL_DIR}/debug/lib/${DEPENDENCY_NAME}_d.lib>
354+
$<$<CONFIG:RelWithDebInfo>:${IRR_INSTALL_DIR}/relwithdebinfo/lib/${DEPENDENCY_NAME}.lib>
355+
$<$<CONFIG:Release>:${IRR_INSTALL_DIR}/lib/${DEPENDENCY_NAME}.lib>
356+
)
357+
endfunction()
358+
link_irr_dependency(glslang)
359+
link_irr_dependency_(jpeg)
360+
link_irr_dependency_(IlmImf-2_4)
361+
link_irr_dependency_(IexMath-2_4)
362+
link_irr_dependency_(Iex-2_4)
363+
link_irr_dependency_(IlmThread-2_4)
364+
link_irr_dependency_(Half-2_4)
365+
link_irr_dependency_(Imath-2_4)
366+
link_irr_dependency(libpng16_static)
367+
# OpenSSL only ever exists in the Release variant
368+
if(WIN32)
369+
target_link_libraries(${PROJECT_NAME}
370+
${IRR_INSTALL_DIR}/lib/libeay32.lib
371+
${IRR_INSTALL_DIR}/lib/ssleay32.lib
372+
)
373+
else()
374+
target_link_libraries(${PROJECT_NAME}
375+
${IRR_INSTALL_DIR}/lib/libcrypto.lib
376+
${IRR_INSTALL_DIR}/lib/libssl.lib
377+
)
378+
endif()
379+
link_irr_dependency_(shaderc)
380+
link_irr_dependency_(shaderc_util)
381+
link_irr_dependency(SPIRV)
382+
link_irr_dependency_(SPIRV-Tools)
383+
link_irr_dependency_(SPIRV-Tools-opt)
384+
link_irr_dependency(OGLCompiler)
385+
link_irr_dependency(OSDependent)
386+
link_irr_dependency(HLSL)
387+
link_irr_dependency(zlibstatic)
346388
```
347389

348390
If you want to use git (without a submodule) then you can use `ExternalProject_Add` with the `GIT_` properties instead.

src/irr/CMakeLists.txt

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -427,14 +427,7 @@ if(IRR_PCH)
427427
target_precompile_headers(Irrlicht PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/pch.h")
428428
endif()
429429

430-
set_target_properties(Irrlicht PROPERTIES DEBUG_POSTFIX _debug)
431-
set_target_properties(Irrlicht PROPERTIES RELWITHDEBDINFO_POSTFIX _relwithdebinfo)
432430

433-
macro(irr_install_static_lib _TRGT)
434-
install(TARGETS ${_TRGT} ARCHIVE DESTINATION lib CONFIGURATIONS Release)
435-
install(TARGETS ${_TRGT} ARCHIVE DESTINATION debug/lib CONFIGURATIONS Debug)
436-
install(TARGETS ${_TRGT} ARCHIVE DESTINATION relwithdebinfo/lib CONFIGURATIONS RelWithDebInfo)
437-
endmacro()
438431
if(IRR_EMBED_BUILTIN_RESOURCES)
439432
add_custom_target(builtin_resources
440433
DEPENDS ${CMAKE_BINARY_DIR}/include/irr/builtin/builtinResources.h ${CMAKE_CURRENT_BINARY_DIR}/builtin/builtinResourceData.cpp)
@@ -445,9 +438,53 @@ elseif()
445438
endforeach()
446439
endif()
447440

448-
irr_install_static_lib(Irrlicht)
441+
449442
set(IRRLICHT_HEADERS_TO_INSTALL
450443
${IRRLICHT_HEADERS_PUBLIC}
451444
)
452445
irr_install_headers("${IRRLICHT_HEADERS_TO_INSTALL}" "${IRR_ROOT_PATH}/include")
453-
irr_install_config_header(BuildConfigOptions.h)
446+
irr_install_config_header(BuildConfigOptions.h)
447+
448+
449+
macro(irr_install_lib _TRGT)
450+
install(TARGETS ${_TRGT} ARCHIVE DESTINATION lib CONFIGURATIONS Release)
451+
install(TARGETS ${_TRGT} ARCHIVE DESTINATION debug/lib CONFIGURATIONS Debug)
452+
install(TARGETS ${_TRGT} ARCHIVE DESTINATION relwithdebinfo/lib CONFIGURATIONS RelWithDebInfo)
453+
endmacro()
454+
# Install main lib
455+
set_target_properties(Irrlicht PROPERTIES DEBUG_POSTFIX _debug)
456+
set_target_properties(Irrlicht PROPERTIES RELWITHDEBDINFO_POSTFIX _relwithdebinfo)
457+
irr_install_lib(Irrlicht)
458+
459+
#install dependencies
460+
irr_install_lib(glslang)
461+
irr_install_lib(jpeg)
462+
irr_install_lib(Half)
463+
irr_install_lib(HLSL)
464+
irr_install_lib(Iex)
465+
irr_install_lib(IexMath)
466+
irr_install_lib(IlmImf)
467+
irr_install_lib(IlmThread)
468+
irr_install_lib(Imath)
469+
irr_install_lib(png_static)
470+
if(WIN32)
471+
install(FILES
472+
"$<TARGET_PROPERTY:openssl_build,BINARY_DIR>/build/lib/libeay32.lib"
473+
"$<TARGET_PROPERTY:openssl_build,BINARY_DIR>/build/lib/ssleay32.lib"
474+
DESTINATION lib
475+
)
476+
else()
477+
install(FILES
478+
"$<TARGET_PROPERTY:openssl_build,BINARY_DIR>/build/lib/libcrypto.a"
479+
"$<TARGET_PROPERTY:openssl_build,BINARY_DIR>/build/lib/libssl.a"
480+
DESTINATION lib
481+
)
482+
endif()
483+
irr_install_lib(shaderc)
484+
irr_install_lib(shaderc_util)
485+
irr_install_lib(SPIRV)
486+
irr_install_lib(SPIRV-Tools)
487+
irr_install_lib(SPIRV-Tools-opt)
488+
irr_install_lib(OGLCompiler)
489+
irr_install_lib(OSDependent)
490+
irr_install_lib(zlibstatic)

0 commit comments

Comments
 (0)