Reputation: 65
I have a program to recognize files based on their signatures. Works great. But I'm new to C and am now trying to get an IDE called CLion to work. However, I can't figure out how to add command arguments to cmake - such that when I run main and want to pass a gifFile or a pdfFile to recognize I can do so. Here is my code so far for cmake.
cmake_minimum_required(VERSION 3.8)
project(Assignment6)
set(CMAKE_C_STANDARD 99)
set(SOURCE_FILES file_recognizer.c)
add_executable(Assignment6 ${SOURCE_FILES})
in the command line this would be something like
gcc file_recognizer.c -o Assignment6
and then you say
./Assignment6 gifFile.gif
How do I get cmake to accept the argument at the end, "gifFile.gif"?
Below is my main function for reference if needed
int main(int argc, char const *argv[]) {
FILE *yourFile;
unsigned char *fileBytes, *fileType;
long fileLength;
fileLength = 10;
if(argc != 2 || (yourFile = fopen(argv[1], "rb")) == NULL) {
printf("Invalid Input\n");
exit(-1);
}
fileBytes = readFile(yourFile, fileLength, fileBytes);
determineFileType(fileBytes, fileType);
return 0;
}
Upvotes: 1
Views: 6659
Reputation: 5261
This isn't something CMake is designed to do. I mean, it's do-able with CMake:
add_custom_command(OUTPUT output COMMAND Assignment6 ARGS gifFile.gif)
But what it sounds like what you want to do isn't part of the build process and CMake is all about the building, testing, and packaging software, not running it.
Since you're using CLion, you might be better off setting the program arguements in CLion for debugging purposes.
Click here:
and enter your args here:
Upvotes: 5