Skip to content

Commit fc6c832

Browse files
fix: ensure proper installation checks and target definitions in CMake files
1 parent 82936a3 commit fc6c832

2 files changed

Lines changed: 26 additions & 17 deletions

File tree

cmake/nfxResourceInstall.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
# nfx-resource - Library installation
33
#==============================================================================
44

5+
if(NFX_RESOURCE_INSTALL_INCLUDED)
6+
return()
7+
endif()
8+
set(NFX_RESOURCE_INSTALL_INCLUDED TRUE CACHE INTERNAL "")
9+
510
include(GNUInstallDirs)
611
include(CMakePackageConfigHelpers)
712

cmake/nfxResourceTarget.cmake

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,31 @@
66
# Resource generator
77
#----------------------------------------------
88

9-
add_executable(nfx-resourcegenerator-cli
10-
src/resourcefenerator-cli.cpp
11-
)
12-
set_target_properties(nfx-resourcegenerator-cli PROPERTIES
13-
CXX_STANDARD 20
14-
CXX_STANDARD_REQUIRED ON
15-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
16-
)
17-
add_executable(nfx::resourcegen ALIAS nfx-resourcegenerator-cli)
9+
if(NOT TARGET nfx-resourcegenerator-cli)
10+
add_executable(nfx-resourcegenerator-cli
11+
src/resourcefenerator-cli.cpp
12+
)
13+
set_target_properties(nfx-resourcegenerator-cli PROPERTIES
14+
CXX_STANDARD 20
15+
CXX_STANDARD_REQUIRED ON
16+
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin"
17+
)
18+
add_executable(nfx::resourcegen ALIAS nfx-resourcegenerator-cli)
19+
endif()
1820

1921
#----------------------------------------------
2022
# Header-only library
2123
#----------------------------------------------
2224

23-
add_library(nfx-resource INTERFACE)
24-
add_library(nfx::resource ALIAS nfx-resource)
25+
if(NOT TARGET nfx-resource)
26+
add_library(nfx-resource INTERFACE)
27+
add_library(nfx::resource ALIAS nfx-resource)
2528

26-
target_include_directories(nfx-resource
27-
INTERFACE
28-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
29-
$<INSTALL_INTERFACE:include>
30-
)
29+
target_include_directories(nfx-resource
30+
INTERFACE
31+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
32+
$<INSTALL_INTERFACE:include>
33+
)
3134

32-
target_compile_features(nfx-resource INTERFACE cxx_std_20)
35+
target_compile_features(nfx-resource INTERFACE cxx_std_20)
36+
endif()

0 commit comments

Comments
 (0)