@@ -31,6 +31,15 @@ ENDIF()
3131
3232INCLUDE_DIRECTORIES (include )
3333
34+ # get version from header file
35+ FILE (READ "include/dirtrav_version.h" VERSION_HEADER )
36+ STRING (REGEX REPLACE "^.*#define DIRTRAV_VERSION_MAJOR ([0-9]+).*#define DIRTRAV_VERSION_MINOR ([0-9]+).*#define DIRTRAV_VERSION_MICRO ([0-9]+).*$" "\\ 1.\\ 2.\\ 3" PARSED_VERSION "${VERSION_HEADER} " )
37+ MESSAGE (STATUS "Version of ${PROJECT_NAME} : ${PARSED_VERSION} " )
38+
39+ # other project information
40+ SET (DIRTRAV_PROJECT_DESCRIPTION "Cross-platform C library for recursively traversing directory contents" )
41+ SET (DIRTRAVW_PROJECT_DESCRIPTION "${DIRTRAV_PROJECT_DESCRIPTION} - Windows wide character version" )
42+
3443# build definitions
3544SET (ALLTARGETS)
3645SET (LINKTYPES)
@@ -42,7 +51,9 @@ IF(BUILD_SHARED)
4251ENDIF ()
4352
4453IF (WIN32 )
45- SET (WIN32_LIBS -lmpr -lshlwapi)
54+ SET (DEPENDENCY_LIBS -lmpr -lshlwapi)
55+ ELSE ()
56+ SET (DEPENDENCY_LIBS)
4657ENDIF ()
4758
4859FOREACH (LINKTYPE ${LINKTYPES} )
@@ -52,7 +63,7 @@ FOREACH(LINKTYPE ${LINKTYPES})
5263 SET_TARGET_PROPERTIES (dirtrav_${LINKTYPE} PROPERTIES OUTPUT_NAME dirtrav )
5364 TARGET_INCLUDE_DIRECTORIES (dirtrav_${LINKTYPE} PRIVATE lib )
5465 IF (WIN32 AND "${LINKTYPE} " STREQUAL "SHARED" )
55- TARGET_LINK_LIBRARIES (dirtrav_${LINKTYPE} ${WIN32_LIBS } )
66+ TARGET_LINK_LIBRARIES (dirtrav_${LINKTYPE} ${DEPENDENCY_LIBS } )
5667 ENDIF ()
5768 SET (ALLTARGETS ${ALLTARGETS} dirtrav_${LINKTYPE} )
5869
@@ -63,17 +74,34 @@ FOREACH(LINKTYPE ${LINKTYPES})
6374 SET_TARGET_PROPERTIES (dirtravw_${LINKTYPE} PROPERTIES OUTPUT_NAME dirtravw )
6475 TARGET_INCLUDE_DIRECTORIES (dirtravw_${LINKTYPE} PRIVATE lib )
6576 IF (WIN32 AND "${LINKTYPE} " STREQUAL "SHARED" )
66- TARGET_LINK_LIBRARIES (dirtravw_${LINKTYPE} ${WIN32_LIBS } )
77+ TARGET_LINK_LIBRARIES (dirtravw_${LINKTYPE} ${DEPENDENCY_LIBS } )
6778 ENDIF ()
6879 SET (ALLTARGETS ${ALLTARGETS} dirtravw_${LINKTYPE} )
6980 ENDIF ()
7081
7182 SET (EXELINKTYPE ${LINKTYPE} )
7283ENDFOREACH ()
7384
85+ LIST (JOIN DEPENDENCY_LIBS " " PC_STATIC_DEPENDENCIES)
86+ SET (PC_PROJECT_NAME "libdirtrav" )
87+ SET (PC_PROJECT_DESCRIPTION "${DIRTRAV_PROJECT_DESCRIPTION} " )
88+ SET (PC_LINK_LIBRARY "dirtrav" )
89+ SET (PC_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX} " )
90+ CONFIGURE_FILE (pkgconfig.pc.in libdirtrav.pc @ONLY )
91+ INSTALL (FILES libdirtrav.pc DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig)
92+
93+ IF (WITH_WIDE)
94+ SET (PC_PROJECT_NAME "libdirtravw" )
95+ SET (PC_PROJECT_DESCRIPTION "${DIRTRAVW_PROJECT_DESCRIPTION} " )
96+ SET (PC_LINK_LIBRARY "dirtravw" )
97+ SET (PC_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX} " )
98+ CONFIGURE_FILE (pkgconfig.pc.in libdirtravw.pc @ONLY )
99+ INSTALL (FILES libdirtravw.pc DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig)
100+ ENDIF ()
101+
74102IF (BUILD_TOOLS)
75103 IF (WIN32 AND "${EXELINKTYPE} " STREQUAL "STATIC" )
76- SET (TOOLS_LIBS ${WIN32_LIBS } )
104+ SET (TOOLS_LIBS ${DEPENDENCY_LIBS } )
77105 ELSE ()
78106 SET (TOOLS_LIBS)
79107 ENDIF ()
0 commit comments