CMake updates, Win32 resources and .gitattributes added
CMake: Improve RPATH handling for both TARGET and non-TARGET builds CMake: Updating configure_file's to handle ragephoto_ instead of PROJECT_ variables Win32 resources: Add basic library description with CMake's configure_file
This commit is contained in:
		
							parent
							
								
									56314c2738
								
							
						
					
					
						commit
						bb53b342b7
					
				
					 7 changed files with 75 additions and 9 deletions
				
			
		
							
								
								
									
										15
									
								
								.gitattributes
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.gitattributes
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					# Auto detect text files and perform LF normalization
 | 
				
			||||||
 | 
					* text=auto eol=lf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Development files
 | 
				
			||||||
 | 
					CMakeLists.txt text eol=lf
 | 
				
			||||||
 | 
					*.cmake text eol=lf
 | 
				
			||||||
 | 
					*.cpp text eol=lf
 | 
				
			||||||
 | 
					*.h text eol=lf
 | 
				
			||||||
 | 
					*.h.in text eol=lf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Linux development file
 | 
				
			||||||
 | 
					*.pc.in text eol=lf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Windows development files
 | 
				
			||||||
 | 
					*.rc.in text eol=crlf
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,6 @@ set(RAGEPHOTO_SOURCES
 | 
				
			||||||
option(BUILD_SHARED "Build libragephoto as shared library" ON)
 | 
					option(BUILD_SHARED "Build libragephoto as shared library" ON)
 | 
				
			||||||
if (BUILD_SHARED)
 | 
					if (BUILD_SHARED)
 | 
				
			||||||
    option(WITH_C_API "Build libragephoto with C API support" ON)
 | 
					    option(WITH_C_API "Build libragephoto with C API support" ON)
 | 
				
			||||||
    set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
 | 
					 | 
				
			||||||
    set(LIBRAGEPHOTO_LIBTYPE LIBRAGEPHOTO_SHARED)
 | 
					    set(LIBRAGEPHOTO_LIBTYPE LIBRAGEPHOTO_SHARED)
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
    option(WITH_C_API "Build libragephoto with C API support" OFF)
 | 
					    option(WITH_C_API "Build libragephoto with C API support" OFF)
 | 
				
			||||||
| 
						 | 
					@ -65,6 +64,15 @@ else()
 | 
				
			||||||
    set(LIBRAGEPHOTO_API LIBRAGEPHOTO_C_NOAPI)
 | 
					    set(LIBRAGEPHOTO_API LIBRAGEPHOTO_C_NOAPI)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# RagePhoto Win32 Shared Resources
 | 
				
			||||||
 | 
					if (WIN32)
 | 
				
			||||||
 | 
					    string(TIMESTAMP ragephoto_BUILD_YEAR "%Y" UTC)
 | 
				
			||||||
 | 
					    configure_file(src/ragephoto.rc.in resources/ragephoto.rc @ONLY)
 | 
				
			||||||
 | 
					    list(APPEND RAGEPHOTO_SHARED_RESOURCES
 | 
				
			||||||
 | 
					        ${PROJECT_BINARY_DIR}/resources/ragephoto.rc
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# RagePhoto Configures + Target + Installs
 | 
					# RagePhoto Configures + Target + Installs
 | 
				
			||||||
configure_file(src/ragephoto.pc.in pkgconfig/ragephoto.pc @ONLY)
 | 
					configure_file(src/ragephoto.pc.in pkgconfig/ragephoto.pc @ONLY)
 | 
				
			||||||
configure_file(src/libragephoto_global.h.in include/libragephoto_global.h @ONLY)
 | 
					configure_file(src/libragephoto_global.h.in include/libragephoto_global.h @ONLY)
 | 
				
			||||||
| 
						 | 
					@ -72,9 +80,12 @@ list(APPEND RAGEPHOTO_HEADERS
 | 
				
			||||||
    ${PROJECT_BINARY_DIR}/include/libragephoto_global.h
 | 
					    ${PROJECT_BINARY_DIR}/include/libragephoto_global.h
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
if (BUILD_SHARED)
 | 
					if (BUILD_SHARED)
 | 
				
			||||||
    add_library(ragephoto SHARED ${RAGEPHOTO_HEADERS} ${RAGEPHOTO_SOURCES})
 | 
					    add_library(ragephoto SHARED ${RAGEPHOTO_HEADERS} ${RAGEPHOTO_SOURCES} ${RAGEPHOTO_SHARED_RESOURCES})
 | 
				
			||||||
 | 
					    set_target_properties(ragephoto PROPERTIES
 | 
				
			||||||
 | 
					        PREFIX "lib"
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
    add_library(ragephoto STATIC ${RAGEPHOTO_HEADERS} ${RAGEPHOTO_SOURCES})
 | 
					    add_library(ragephoto STATIC ${RAGEPHOTO_HEADERS} ${RAGEPHOTO_SOURCES} ${RAGEPHOTO_STATIC_RESOURCES})
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
target_compile_definitions(ragephoto PRIVATE
 | 
					target_compile_definitions(ragephoto PRIVATE
 | 
				
			||||||
    LIBRAGEPHOTO_LIBRARY
 | 
					    LIBRAGEPHOTO_LIBRARY
 | 
				
			||||||
| 
						 | 
					@ -119,6 +130,9 @@ if (WITH_EXTRACT)
 | 
				
			||||||
        set(EXTRACT_SOURCES src/RagePhoto-Extract.cpp)
 | 
					        set(EXTRACT_SOURCES src/RagePhoto-Extract.cpp)
 | 
				
			||||||
    endif()
 | 
					    endif()
 | 
				
			||||||
    add_executable(ragephoto-extract ${RAGEPHOTO_HEADERS} ${EXTRACT_SOURCES})
 | 
					    add_executable(ragephoto-extract ${RAGEPHOTO_HEADERS} ${EXTRACT_SOURCES})
 | 
				
			||||||
 | 
					    set_target_properties(ragephoto-extract PROPERTIES
 | 
				
			||||||
 | 
					        INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
    target_link_libraries(ragephoto-extract PRIVATE ragephoto)
 | 
					    target_link_libraries(ragephoto-extract PRIVATE ragephoto)
 | 
				
			||||||
    install(TARGETS ragephoto-extract DESTINATION ${CMAKE_INSTALL_BINDIR})
 | 
					    install(TARGETS ragephoto-extract DESTINATION ${CMAKE_INSTALL_BINDIR})
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,11 +33,15 @@ set(GTKVIEWER_SOURCES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (TARGET ragephoto)
 | 
					if (TARGET ragephoto)
 | 
				
			||||||
    set(RAGEPHOTO_LIBRARIES ragephoto)
 | 
					    set(RAGEPHOTO_LIBRARIES ragephoto)
 | 
				
			||||||
 | 
					    set(RAGEPHOTO_LIBRARY_DIRS ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
    pkg_check_modules(RAGEPHOTO REQUIRED ragephoto)
 | 
					    pkg_check_modules(RAGEPHOTO REQUIRED ragephoto)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(ragephoto-gtkviewer WIN32 ${GTKVIEWER_SOURCES})
 | 
					add_executable(ragephoto-gtkviewer WIN32 ${GTKVIEWER_SOURCES})
 | 
				
			||||||
 | 
					set_target_properties(ragephoto-gtkviewer PROPERTIES
 | 
				
			||||||
 | 
					    INSTALL_RPATH ${GTKMM_LIBRARY_DIRS};${RAGEPHOTO_LIBRARY_DIRS}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
target_compile_options(ragephoto-gtkviewer PRIVATE ${GTKMM_CFLAGS} ${RAGEPHOTO_CFLAGS})
 | 
					target_compile_options(ragephoto-gtkviewer PRIVATE ${GTKMM_CFLAGS} ${RAGEPHOTO_CFLAGS})
 | 
				
			||||||
target_link_libraries(ragephoto-gtkviewer PRIVATE ${GTKMM_LIBRARIES} ${RAGEPHOTO_LIBRARIES})
 | 
					target_link_libraries(ragephoto-gtkviewer PRIVATE ${GTKMM_LIBRARIES} ${RAGEPHOTO_LIBRARIES})
 | 
				
			||||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.13.0")
 | 
					if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.13.0")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,12 +38,16 @@ set(QTVIEWER_SOURCES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (TARGET ragephoto)
 | 
					if (TARGET ragephoto)
 | 
				
			||||||
    set(RAGEPHOTO_LIBRARIES ragephoto)
 | 
					    set(RAGEPHOTO_LIBRARIES ragephoto)
 | 
				
			||||||
 | 
					    set(RAGEPHOTO_LIBRARY_DIRS ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
    find_package(PkgConfig REQUIRED)
 | 
					    find_package(PkgConfig REQUIRED)
 | 
				
			||||||
    pkg_check_modules(RAGEPHOTO REQUIRED ragephoto)
 | 
					    pkg_check_modules(RAGEPHOTO REQUIRED ragephoto)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(ragephoto-qtviewer WIN32 ${QTVIEWER_SOURCES})
 | 
					add_executable(ragephoto-qtviewer WIN32 ${QTVIEWER_SOURCES})
 | 
				
			||||||
 | 
					set_target_properties(ragephoto-qtviewer PROPERTIES
 | 
				
			||||||
 | 
					    INSTALL_RPATH ${RAGEPHOTO_LIBRARY_DIRS}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
target_compile_options(ragephoto-qtviewer PRIVATE ${RAGEPHOTO_CFLAGS})
 | 
					target_compile_options(ragephoto-qtviewer PRIVATE ${RAGEPHOTO_CFLAGS})
 | 
				
			||||||
target_link_libraries(ragephoto-qtviewer PRIVATE Qt${QT_VERSION_MAJOR}::Widgets ${RAGEPHOTO_LIBRARIES})
 | 
					target_link_libraries(ragephoto-qtviewer PRIVATE Qt${QT_VERSION_MAJOR}::Widgets ${RAGEPHOTO_LIBRARIES})
 | 
				
			||||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.13.0")
 | 
					if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.13.0")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,10 +22,10 @@
 | 
				
			||||||
/* CMAKE CONFIG BEGIN */
 | 
					/* CMAKE CONFIG BEGIN */
 | 
				
			||||||
#define @LIBRAGEPHOTO_API@
 | 
					#define @LIBRAGEPHOTO_API@
 | 
				
			||||||
#define @LIBRAGEPHOTO_LIBTYPE@
 | 
					#define @LIBRAGEPHOTO_LIBTYPE@
 | 
				
			||||||
#define RAGEPHOTO_VERSION "@PROJECT_VERSION@"
 | 
					#define RAGEPHOTO_VERSION "@ragephoto_VERSION@"
 | 
				
			||||||
#define RAGEPHOTO_VERSION_MAJOR @PROJECT_VERSION_MAJOR@
 | 
					#define RAGEPHOTO_VERSION_MAJOR @ragephoto_VERSION_MAJOR@
 | 
				
			||||||
#define RAGEPHOTO_VERSION_MINOR @PROJECT_VERSION_MINOR@
 | 
					#define RAGEPHOTO_VERSION_MINOR @ragephoto_VERSION_MINOR@
 | 
				
			||||||
#define RAGEPHOTO_VERSION_PATCH @PROJECT_VERSION_PATCH@
 | 
					#define RAGEPHOTO_VERSION_PATCH @ragephoto_VERSION_PATCH@
 | 
				
			||||||
/* CMAKE CONFIG END */
 | 
					/* CMAKE CONFIG END */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* RAGEPHOTO LIBRARY EXPORT BEGIN */
 | 
					/* RAGEPHOTO LIBRARY EXPORT BEGIN */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,7 @@ libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
 | 
				
			||||||
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/RagePhoto
 | 
					includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/RagePhoto
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Name: libragephoto
 | 
					Name: libragephoto
 | 
				
			||||||
Description: Open Source RAGE Photo Parser for GTA V
 | 
					Description: Open Source RAGE Photo Parser for GTA V and RDR 2
 | 
				
			||||||
Version: @PROJECT_VERSION@
 | 
					Version: @ragephoto_VERSION@
 | 
				
			||||||
Libs: -L${libdir} -lragephoto
 | 
					Libs: -L${libdir} -lragephoto
 | 
				
			||||||
Cflags: -I${includedir}
 | 
					Cflags: -I${includedir}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										29
									
								
								src/ragephoto.rc.in
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/ragephoto.rc.in
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					#include <windows.h>
 | 
				
			||||||
 | 
					VS_VERSION_INFO     VERSIONINFO
 | 
				
			||||||
 | 
					FILEVERSION         @ragephoto_VERSION_MAJOR@, @ragephoto_VERSION_MINOR@, @ragephoto_VERSION_PATCH@, 0
 | 
				
			||||||
 | 
					PRODUCTVERSION      @ragephoto_VERSION_MAJOR@, @ragephoto_VERSION_MINOR@, @ragephoto_VERSION_PATCH@, 0
 | 
				
			||||||
 | 
					FILEFLAGSMASK       0x3fL
 | 
				
			||||||
 | 
					FILEFLAGS           0
 | 
				
			||||||
 | 
					FILEOS              VOS_NT_WINDOWS32
 | 
				
			||||||
 | 
					FILETYPE            VFT_APP
 | 
				
			||||||
 | 
					FILESUBTYPE         VFT2_UNKNOWN
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    BLOCK   "VarFileInfo"
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        VALUE   "Translation",  0x0809,  1200
 | 
				
			||||||
 | 
					    END
 | 
				
			||||||
 | 
					    BLOCK   "StringFileInfo"
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        BLOCK   "040904b0"
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            VALUE   "CompanyName",      "Syping"
 | 
				
			||||||
 | 
					            VALUE   "FileDescription",  "Open Source RAGE Photo Parser for GTA V and RDR 2"
 | 
				
			||||||
 | 
					            VALUE   "FileVersion",      "@ragephoto_VERSION@"
 | 
				
			||||||
 | 
					            VALUE   "InternalName",     "ragephoto"
 | 
				
			||||||
 | 
					            VALUE   "LegalCopyright",   "Copyright © @ragephoto_BUILD_YEAR@ Syping"
 | 
				
			||||||
 | 
					            VALUE   "OriginalFilename", "ragephoto.dll"
 | 
				
			||||||
 | 
					            VALUE   "ProductName",      "libragephoto"
 | 
				
			||||||
 | 
					            VALUE   "ProductVersion",   "@ragephoto_VERSION@"
 | 
				
			||||||
 | 
					        END
 | 
				
			||||||
 | 
					    END
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue