Chciałbym stworzyć możliwość instalowania aplikacji w systemie.
Do tej pory robiłem to funkcją wykorzystującą polecenie systemowe:
void set_global(void) {
/*Function to set hdf-to-tif as global application.*/
puts(ANSI_COLOR_RED"WARINING! ROOT PERMISSION OR ADMINISTRATOR NEED!"ANSI_COLOR_RESET);
puts("Set "ANSI_COLOR_GREEN"hdf-to-tif"ANSI_COLOR_RESET" as global application.");
system("sudo rm -rf /usr/bin/hdf-to-tif");
system("sudo cp -r hdf-to-tif /usr/bin");
system("export PATH=\"/usr/bin:$PATH\"");
system("sudo chmod 755 /usr/bin/hdf-to-tif");
}
Chciałem to zmienić dodając do pliku CMakeList.txt odpowiednią instrukcję instalacji.
Po wykonaniu instalacji dostaję komunikat:
CMake Error at cmake_install.cmake:55 (file):
file INSTALL cannot copy file
Plik CMakeLists.txt
cmake_minimum_required(VERSION 3.15)
project(hdf-to-tif C)
set(CMAKE_C_STANDARD 99)
# find system installed GDAL package with predefined CMake variable for finding GDAL
find_package(GDAL REQUIRED)
# Specify location of GDAL header files
include_directories(include ${GDAL_INCLUDE_DIRS})
add_executable(hdf-to-tif main.c h5_proc.c h5_proc.h ANSI_color_codes.h)
# Specify GDAL libraries to link your cpp executable target against
target_link_libraries(hdf-to-tif -lm ${GDAL_LIBRARIES})
install(TARGETS hdf-to-tif DESTINATION /opt/)
Co powinienem dopisać w pliku CMakeLists.txt aby wykonało się to samo co robi funkcja set_global oraz jak zrobić to w ten sposób aby pod innymi systemami także działało?
CMAKE_BINARY_DIR
- czy to będzie zależnie od systemu operacyjnego?
CMAKE_CURRENT_BINARY_DIR
- czy to obecna ścieżka?