Skip to content

Commit f32932f

Browse files
trexxetGitMensch
andauthored
Use relative cmake paths (#366)
* Use relative cmake paths * Fix include paths when used as a CMake dependency - add scopes to target_link_libraries - add pdcurses_include_dirs interface target * Update project_common.cmake --------- Co-authored-by: Simon Sobisch <simonsobisch@web.de>
1 parent b9b8ec2 commit f32932f

9 files changed

Lines changed: 40 additions & 49 deletions

File tree

CMakeLists.txt

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ if(NOT CMAKE_BUILD_TYPE)
55
message(STATUS "CMAKE_BUILD_TYPE not set, defaulting to MinSizeRel.")
66
endif()
77

8-
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/cmake")
8+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
99

10-
include (get_version)
10+
include(get_version)
1111
project(pdcurses VERSION "${CURSES_VERSION}" LANGUAGES C)
1212

1313
if(MSVC)
@@ -47,35 +47,29 @@ elseif(PDC_DOSVT_BUILD) # currently requires a unique toolchain file
4747
elseif(PDC_OS2_BUILD) # currently requires a unique toolchain file
4848

4949
add_subdirectory(os2)
50-
50+
5151
else()
5252

5353
add_subdirectory(ncurses)
54-
54+
5555
if(PDC_SDL2_BUILD)
56-
5756
add_subdirectory(sdl2)
58-
5957
endif()
6058

6159
if(PDC_GL_BUILD)
62-
6360
add_subdirectory(gl)
64-
6561
endif()
6662

6763
if(UNIX)
6864
add_subdirectory(vt)
6965
endif()
7066

7167
if(WIN32)
72-
7368
add_subdirectory(wincon)
7469
add_subdirectory(wingui)
7570
add_subdirectory(vt)
76-
7771
endif()
78-
72+
7973
endif()
8074

8175
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_SOURCE_DIR}/cmake/make_uninstall.cmake")

cmake/build_dependencies.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ IF (PDC_SDL2_DEPS_BUILD)
138138
GIT_TAG "release-${SDL2_TTF_RELEASE}"
139139
GIT_SHALLOW true
140140
PATCH_COMMAND cmake -E copy
141-
${CMAKE_SOURCE_DIR}/cmake/sdl2_ttf/CMakeLists.txt
141+
${CMAKE_CURRENT_LIST_DIR}/sdl2_ttf/CMakeLists.txt
142142
${CMAKE_BINARY_DIR}/sdl2_ttf/CMakeLists.txt
143143
UPDATE_COMMAND ""
144144
DOWNLOAD_DIR ${CMAKE_BINARY_DIR}

cmake/dll_version.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ endif()
2020

2121
set(PRODUCT_FILE_DESCRIPTION "${PRODUCT_FILE_DESCRIPTION} ${TOOL_NAME} ${TARGET_ARCH}")
2222

23-
configure_file ( ${CMAKE_SOURCE_DIR}/cmake/version.in.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY )
24-
configure_file ( ${CMAKE_SOURCE_DIR}/cmake/resource.in.cmake ${CMAKE_CURRENT_BINARY_DIR}/resource.h @ONLY )
23+
configure_file ( ${CMAKE_CURRENT_LIST_DIR}/version.in.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY )
24+
configure_file ( ${CMAKE_CURRENT_LIST_DIR}/resource.in.cmake ${CMAKE_CURRENT_BINARY_DIR}/resource.h @ONLY )

cmake/get_version.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
file(READ ${CMAKE_SOURCE_DIR}/curses.h _CURSES_H_CONTENTS)
2+
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/curses.h _CURSES_H_CONTENTS)
33

44
string(REGEX MATCH "#define PDC_VER_MAJOR ([a-zA-Z0-9_]+)" PDC_VER_MAJOR "${_CURSES_H_CONTENTS}")
55
string(REPLACE "#define PDC_VER_MAJOR " "" PDC_VER_MAJOR "${PDC_VER_MAJOR}")

cmake/project_common.cmake

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
11
message(STATUS "**** ${PROJECT_NAME} ****")
22

3-
set(PDCURSES_SRCDIR ${CMAKE_SOURCE_DIR})
43
set(PDCURSES_DIST ${CMAKE_INSTALL_PREFIX}/${CMAKE_BUILD_TYPE})
54

6-
set(osdir ${PDCURSES_SRCDIR}/${PROJECT_NAME})
7-
set(demodir ${PDCURSES_SRCDIR}/demos)
8-
95
set(pdc_src_files
10-
${osdir}/pdcclip.c
11-
${osdir}/pdcdisp.c
12-
${osdir}/pdcgetsc.c
13-
${osdir}/pdckbd.c
14-
${osdir}/pdcscrn.c
15-
${osdir}/pdcsetsc.c
16-
${osdir}/pdcutil.c
6+
pdcclip.c
7+
pdcdisp.c
8+
pdcgetsc.c
9+
pdckbd.c
10+
pdcscrn.c
11+
pdcsetsc.c
12+
pdcutil.c
1713
)
1814

19-
include_directories (..)
20-
include_directories (${osdir})
21-
15+
if(NOT TARGET pdcurses_include_dirs)
16+
add_library(pdcurses_include_dirs INTERFACE)
17+
target_include_directories(pdcurses_include_dirs SYSTEM INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>)
18+
target_include_directories(pdcurses_include_dirs INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
19+
endif()
2220

2321
if(WIN32 AND NOT WATCOM)
2422
include(dll_version)
@@ -84,19 +82,17 @@ if(PDC_BUILD_SHARED)
8482
set_target_properties(${PDCURSE_PROJ} PROPERTIES MACOSX_RPATH 1)
8583
endif()
8684

85+
target_link_libraries(${PDCURSE_PROJ} PRIVATE ${EXTRA_LIBS})
86+
8787
if(${PROJECT_NAME} STREQUAL "sdl2")
8888
if(PDC_WIDE OR PDC_UTF8)
89-
target_link_libraries(${PDCURSE_PROJ} ${EXTRA_LIBS}
90-
${SDL2_LIBRARIES} ${SDL2_TTF_LIBRARY} ${FT2_LIBRARY} ${ZLIB_LIBRARY}
91-
${SDL2_DEP_LIBRARIES})
89+
target_link_libraries(${PDCURSE_PROJ} PRIVATE ${SDL2_LIBRARIES} ${SDL2_TTF_LIBRARY}
90+
${FT2_LIBRARY} ${ZLIB_LIBRARY} ${SDL2_DEP_LIBRARIES})
9291
else()
93-
target_link_libraries(${PDCURSE_PROJ} ${EXTRA_LIBS}
94-
${SDL2_LIBRARIES} ${SDL2_DEP_LIBRARIES})
92+
target_link_libraries(${PDCURSE_PROJ} PRIVATE ${SDL2_LIBRARIES} ${SDL2_DEP_LIBRARIES})
9593
endif()
9694
elseif((${PROJECT_NAME} STREQUAL "wincon") OR (${PROJECT_NAME} STREQUAL "wingui") OR (${PROJECT_NAME} STREQUAL "vt"))
97-
target_link_libraries(${PDCURSE_PROJ} ${EXTRA_LIBS} ${WINCON_WINGUI_DEP_LIBS})
98-
else()
99-
target_link_libraries(${PDCURSE_PROJ} ${EXTRA_LIBS})
95+
target_link_libraries(${PDCURSE_PROJ} PRIVATE ${WINCON_WINGUI_DEP_LIBS})
10096
endif()
10197

10298
install(TARGETS ${PDCURSE_PROJ}
@@ -111,6 +107,8 @@ else()
111107
set_target_properties(${PDCURSE_PROJ} PROPERTIES OUTPUT_NAME "pdcursesstatic")
112108
endif()
113109

110+
target_link_libraries(${PDCURSE_PROJ} PUBLIC pdcurses_include_dirs)
111+
114112
macro (demo_app dir targ)
115113
set(bin_name "${PROJECT_NAME}_${targ}")
116114
if(${targ} STREQUAL "tuidemo")
@@ -121,10 +119,9 @@ macro (demo_app dir targ)
121119

122120
add_executable(${bin_name} ${ARGV2} ${src_files})
123121

122+
target_link_libraries(${bin_name} PRIVATE ${PDCURSE_PROJ} ${EXTRA_LIBS})
124123
if((${PROJECT_NAME} STREQUAL "wincon") OR (${PROJECT_NAME} STREQUAL "wingui") OR (${PROJECT_NAME} STREQUAL "vt"))
125-
target_link_libraries(${bin_name} ${PDCURSE_PROJ} ${EXTRA_LIBS} ${WINCON_WINGUI_DEP_LIBS})
126-
else()
127-
target_link_libraries(${bin_name} ${PDCURSE_PROJ} ${EXTRA_LIBS})
124+
target_link_libraries(${bin_name} PRIVATE ${WINCON_WINGUI_DEP_LIBS})
128125
endif()
129126

130127
add_dependencies(${bin_name} ${PDCURSE_PROJ})

cmake/sdl2_ttf/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ PROJECT (sdl2_ttf VERSION ${SDL2_TTF_RELEASE} LANGUAGES C)
99

1010
if(MSVC)
1111
SET(CMAKE_DEBUG_POSTFIX d)
12-
endif()
12+
endif()
1313

1414
INCLUDE_DIRECTORIES(
1515
${ZLIB_INCLUDE_DIR}
@@ -28,7 +28,7 @@ set(SDL2_ttf_source_files SDL_ttf.c)
2828

2929
IF(WIN32)
3030
LIST(INSERT SDL2_ttf_source_files 0 version.rc)
31-
ENDIF()
31+
ENDIF()
3232

3333
if (APPLE)
3434
find_library(COREVIDEO CoreVideo)
@@ -84,11 +84,11 @@ INSTALL (TARGETS SDL2_ttf
8484
LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
8585
COMPONENT libraries)
8686

87-
ADD_EXECUTABLE (showfont ${CMAKE_SOURCE_DIR}/showfont.c)
87+
ADD_EXECUTABLE (showfont ${PROJECT_SOURCE_DIR}/showfont.c)
8888
TARGET_LINK_LIBRARIES (showfont SDL2_ttf ${SDL2_LIBRARIES} ${FT2_LIBRARY} ${ZLIB_LIBRARY} ${EXTRA_LIBS})
8989
INSTALL (TARGETS showfont RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin COMPONENT applications)
9090

91-
ADD_EXECUTABLE (glfont ${CMAKE_SOURCE_DIR}/glfont.c)
91+
ADD_EXECUTABLE (glfont ${PROJECT_SOURCE_DIR}/glfont.c)
9292
TARGET_LINK_LIBRARIES (glfont SDL2_ttf ${SDL2_LIBRARIES} ${FT2_LIBRARY} ${ZLIB_LIBRARY} ${EXTRA_LIBS})
9393
INSTALL (TARGETS glfont RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin COMPONENT applications)
9494

gl/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ macro (gl_app dir targ)
3636
add_executable(${bin_name} ${src_files})
3737
endif()
3838

39-
target_link_libraries(${bin_name} ${PDCURSE_PROJ} ${EXTRA_LIBS}
39+
target_link_libraries(${bin_name} PUBLIC ${PDCURSE_PROJ} ${EXTRA_LIBS}
4040
"${SDL2_LIBRARIES};${SDL2_TTF_LIBRARY};${FT2_LIBRARY};${ZLIB_LIBRARY};${SDL2_DEP_LIBRARIES}")
4141

4242
add_dependencies(${bin_name} ${PDCURSE_PROJ})
@@ -59,7 +59,7 @@ gl_app(../demos xmas)
5959

6060
if(PDC_SDL2_DEPS_BUILD)
6161
add_dependencies(${PDCURSE_PROJ} sdl2_ext sdl2_ttf_ext)
62-
target_link_libraries(${PDCURSE_PROJ} ${EXTRA_LIBS} "${SDL2_LIBRARIES};${SDL2_TTF_LIBRARY};${FT2_LIBRARY};${ZLIB_LIBRARY};${SDL2_DEP_LIBRARIES}")
62+
target_link_libraries(${PDCURSE_PROJ} PUBLIC ${EXTRA_LIBS} "${SDL2_LIBRARIES};${SDL2_TTF_LIBRARY};${FT2_LIBRARY};${ZLIB_LIBRARY};${SDL2_DEP_LIBRARIES}")
6363
target_include_directories(${PDCURSE_PROJ} PUBLIC ${SDL2_INCLUDE_DIR} ${SDL2_TTF_INCLUDE_DIR})
6464
endif()
6565

ncurses/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ if(CURSES_FOUND)
5858
endif()
5959

6060
target_include_directories(${bin_name} PUBLIC ${CURSES_INCLUDE_DIR})
61-
target_link_libraries(${bin_name} ${CURSES_LIBRARIES})
61+
target_link_libraries(${bin_name} PUBLIC ${CURSES_LIBRARIES})
6262
set_target_properties(${bin_name} PROPERTIES OUTPUT_NAME ${targ})
6363

6464
install(TARGETS ${bin_name} RUNTIME DESTINATION ${PDCURSES_DIST}/bin/${PROJECT_NAME} COMPONENT applications)

sdl2/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ macro (sdl2_app dir targ)
3939
endif()
4040

4141
if(PDC_WIDE OR PDC_UTF8)
42-
target_link_libraries(${bin_name} ${PDCURSE_PROJ} ${EXTRA_LIBS}
42+
target_link_libraries(${bin_name} PUBLIC ${PDCURSE_PROJ} ${EXTRA_LIBS}
4343
"${SDL2_LIBRARIES};${SDL2_TTF_LIBRARY};${FT2_LIBRARY};${ZLIB_LIBRARY};${SDL2_DEP_LIBRARIES}")
4444
else()
45-
target_link_libraries(${bin_name} ${PDCURSE_PROJ} ${EXTRA_LIBS}
45+
target_link_libraries(${bin_name} PUBLIC ${PDCURSE_PROJ} ${EXTRA_LIBS}
4646
"${SDL2_LIBRARIES};${SDL2_TTF_DEP_LIBRARIES};${SDL2_DEP_LIBRARIES}")
4747
endif()
4848

0 commit comments

Comments
 (0)